Merge "Add API documentation for vnflcm APIs"

This commit is contained in:
Zuul 2020-04-24 02:31:36 +00:00 committed by Gerrit Code Review
commit f150e8738a
10 changed files with 1713 additions and 0 deletions

View File

@ -20,3 +20,4 @@ NFV Orchestration API v1.0
.. include:: nsds.inc
.. include:: nss.inc
.. include:: vnf_packages.inc
.. include:: vnflcm.inc

View File

@ -0,0 +1,737 @@
# variables in header
vnf_instance_id:
description: |
Identifier of the VNF instance.
in: path
required: true
type: string
# variables in body
cause:
description: |
Indicates the reason why a healing procedure is required.
in: body
required: false
type: string
cp_config:
description: |
List of instance data that need to be configured on the CP instances
created from the respective CPD.
in: body
required: false
type: array
cp_instance_id:
description: |
Identifier of the external Connection Point instance to which this set of
configuration parameters is requested to be applied.
Shall be present if this instance has already been created.
in: body
required: false
type: string
cp_protocol_data:
description: |
Parameters for configuring the network protocols on the link port that
connects the CP to a VL.
in: body
required: false
type: array
cpd_id:
description: |
The identifier of the CPD in the VNFD.
in: body
required: true
type: string
ext_cp_info:
description: |
Information about the external CPs exposed by the VNF instance.
in: body
required: true
type: array
ext_cp_info_cp_protocol_info:
description: |
Network protocol information for this CP.
in: body
required: true
type: array
ext_cp_info_cpd_id:
description: |
Identifier of the external CPD, VnfExtCpd, in the VNFD.
An identifier that is unique for the respective type within a VNF
instance, but that need not be globally unique. Representation: string of
variable length.
in: body
required: true
type: string
ext_cp_info_ext_link_port_id:
description: |
Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo"
structure. Shall be present if the CP is associated to a link port.
in: body
required: false
type: string
ext_cp_info_id:
description: |
Identifier of the external CP instance and the related information instance.
in: body
required: true
type: string
ext_cps:
description: |
External CPs of the VNF to be connected to this external VL.
in: body
required: true
type: array
ext_link_port_id:
description: |
Identifier of this link port as provided by the entity that has created the
link port.
in: body
required: true
type: string
ext_link_port_resource_handle:
description: |
Reference to the virtualised resource realizing this link port.
in: body
required: true
type: object
ext_link_ports:
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.
in: body
required: false
type: array
ext_managed_virtual_link_data_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.
in: body
required: true
type: string
ext_managed_virtual_link_data_resource_id:
description: |
The identifier of the resource in the scope of the VIM or the
resource provider.
in: body
required: true
type: string
ext_managed_virtual_link_info:
description: |
Information about the externally-managed internal VLs of the VNF instance.
in: body
required: false
type: array
ext_managed_virtual_link_info_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.
in: body
required: true
type: string
ext_managed_virtual_link_info_network_resource:
description: |
Reference to the VirtualNetwork resource.
in: body
required: true
type: object
ext_managed_virtual_link_info_vnf_virtual_link_desc_id:
description: |
Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
in: body
required: true
type: string
ext_managed_virtual_links:
description: |
List of information about internal VLs that are managed by the NFVO.
in: body
required: false
type: array
ext_virtual_link_info:
description: |
Information about the external VLs the VNF instance is connected to.
in: body
required: false
type: array
ext_virtual_link_info_ext_link_ports:
description: |
Link ports of this VL.
in: body
required: false
type: array
ext_virtual_link_info_ext_link_ports_cp_instance_id:
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.
in: body
required: false
type: string
ext_virtual_link_info_ext_link_ports_id:
description: |
Identifier of this link port as provided by the entity that
has created the link port.
in: body
required: true
type: string
ext_virtual_link_info_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.
in: body
required: true
type: string
ext_virtual_links:
description: |
Information about external VLs to connect the VNF to.
in: body
required: false
type: array
ext_virtual_links_id:
description: |
The identifier of the external VL instance. The identifier is assigned
by the NFV-MANO entity that manages this VL instance.
in: body
required: true
type: string
ext_virtual_links_resource_id:
description: |
The identifier of the resource in the scope of the VIM or the
resource provider.
in: body
required: true
type: string
fixed_addresses:
description: |
Fixed addresses to assign (from the subnet defined by "subnetId"
if provided).
in: body
required: true
type: array
flavour_id:
description: |
Identifier of the VNF deployment flavour to be instantiated.
in: body
required: true
type: string
flavour_id_response:
description: |
Identifier of the VNF deployment flavour applied to this VNF instance.
in: body
required: true
type: string
graceful_termination_timeout:
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.
in: body
required: false
type: string
instantiated_vnf_info:
description: |
Information specific to an instantiated VNF instance. This attribute shall
be present if the instantiateState attribute value is INSTANTIATED.
in: body
required: false
type: object
instantiation_level_id:
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.
in: body
required: false
type: string
ip_address_type:
description: |
The type of the IP addresses. Permitted values: IPV4, IPV6.
in: body
required: true
type: string
ip_addresses:
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.
in: body
required: false
type: array
ip_addresses_cp_info:
description: |
Addresses assigned to the CP instance. Each entry represents IP
addresses assigned by fixed or dynamic IP address assignment per
subnet.
in: body
required: false
type: array
ip_over_ethernet:
description: |
Network address data for IP over Ethernet to assign to the extCP instance.
Shall be present if layerProtocol is equal to "IP_OVER_ETHERNET", and
shall be absent otherwise.
in: body
required: false
type: object
ip_over_ethernet_cp_info:
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.
in: body
required: false
type: object
is_dynamic:
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.
in: body
required: false
type: boolean
layer_protocol:
description: |
Identifier of layer(s) and protocol(s).
Permitted values: IP_OVER_ETHERNET
in: body
required: true
type: string
layer_protocol_cp_info:
description: |
The identifier of layer(s) and protocol(s) associated to the network
address information.
Permitted values: IP_OVER_ETHERNET
in: body
required: true
type: string
link_port_id:
description: |
Identifier of a pre-configured link port to which the external CP will
be associated. See note.
in: body
required: false
type: string
mac_address:
description: |
MAC address. If this attribute is not present, it shall be chosen by the
VIM. At least one of "macAddress" or "ipAddresses" shall be present.
in: body
required: false
type: string
mac_address_cp_info:
description: |
MAC address, if assigned.
in: body
required: false
type: string
resource_handle:
description: |
Reference to the resource realizing this VL.
in: body
required: true
type: object
resource_handle_resource_id:
description: |
Identifier of the resource in the scope of the VIM or the resource
provider.
in: body
required: true
type: string
resource_handle_vim_level_resource_type:
description: |
Type of the resource in the scope of the VIM or the resource provider.
provider.
in: body
required: false
type: string
subnet_id:
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.
in: body
required: false
type: string
termination_type:
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.
in: body
required: true
type: string
vim_connection_info_access_info:
description: |
Authentication credentials for accessing the VIM, and other access-related
information such as tenants or infrastructure resource groups (see note).
The applicable keys are dependent on the content of vimType.
If the VimConnectionInfo structure is part of an HTTP response payload
body, 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 payload
body, sensitive attributes that are children of this attribute (such as
passwords) shall be present if they have not been provisioned out of band.
in: body
required: false
type: string
vim_connection_info_id:
description: |
The identifier of the VIM Connection. This identifier is managed by
the NFVO.
in: body
required: true
type: string
vim_connection_info_vim_id:
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.
in: body
required: false
type: string
vim_connection_info_vim_type:
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.
in: body
required: false
type: string
virtual_storage_resource_info:
description: |
Information about the virtualised storage resources used as storage for
the VNF instance.
in: body
required: false
type: array
virtual_storage_resource_info_id:
description: |
Identifier of this VirtualStorageResourceInfo instance.
in: body
required: true
type: string
virtual_storage_resource_info_storage_resource:
description: |
Reference to the VirtualStorage resource.
in: body
required: true
type: object
virtual_storage_resource_info_virtual_storage_desc_id:
description: |
Identifier of the VirtualStorageDesc in the VNFD.
in: body
required: true
type: string
vnf_instance_additional_params:
description: |
Additional input parameters for the flavour change
process, specific to the VNF being modified, as declared
in the VNFD as part of "ChangeVnfFlavourOpConfig".
in: body
required: true
type: string
vnf_instance_create_request_description:
description: |
Human-readable description of the VNF instance to be created.
in: body
required: false
type: string
vnf_instance_create_request_name:
description: |
Human-readable name of the VNF instance to be created.
in: body
required: false
type: string
vnf_instance_create_request_vnfd_id:
description: |
Identifier that identifies the VNFD which defines the VNF instance to be created.
in: body
required: true
type: string
vnf_instance_description:
description: |
Human-readable description of the VNF instance.
in: body
required: false
type: string
vnf_instance_extensions:
description: |
description
in: body
required: false
type: string
vnf_instance_id_response:
description: |
Identifier of the VNF instance.
in: body
required: true
type: string
vnf_instance_instantiation_state:
description: |
The instantiation state of the VNF instance.
NOT_INSTANTIATED: The VNF instance is terminated or not instantiated.
INSTANTIATED: The VNF instance is instantiated.
in: body
required: true
type: string
vnf_instance_links:
description: |
Links to resources related to this resource.
in: body
required: true
type: object
vnf_instance_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.
in: body
required: false
type: object
vnf_instance_name:
description: |
Name of the VNF instance.
in: body
required: false
type: string
vnf_instance_vim_connection_info:
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.
in: body
required: false
type: array
vnf_instance_vnf_product_name:
description: |
Name to identify the VNF Product. The value is copied from the VNFD.
in: body
required: true
type: string
vnf_instance_vnf_provider:
description: |
Provider of the VNF and the VNFD. The value is copied from the VNFD.
in: body
required: true
type: string
vnf_instance_vnf_software_version:
description: |
Software version of the VNF. The value is copied from the VNFD.
in: body
required: true
type: string
vnf_instance_vnfd_id:
description: |
Identifier of the VNFD on which the VNF instance is based.
in: body
required: true
type: string
vnf_instance_vnfd_version:
description: |
Identifies the version of the VNFD. The value is copied from the VNFD.
in: body
required: true
type: string
vnf_link_port_cp_instance_id:
description: |
When the link port is used for external connectivity by the VNF, this
attribute represents the identifier associated with this link port.
When the link port is used for internal connectivity in the VNF, this
attribute represents the VNFC CP to be connected to this link port.
Shall be present when the link port is used for external connectivity
by the VNF.
May be present if used to reference a VNFC CP instance.
There shall be at most one link port associated with any external
connection point instance or internal connection point (i.e. VNFC CP)
instance.
The value refers to an "extCpInfo" item in the VnfInstance or a
"vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance.
in: body
required: false
type: string
vnf_link_port_id:
description: |
Identifier of this link port as provided by the entity that has created
the link port.
in: body
required: true
type: string
vnf_link_port_resource_handle:
description: |
Reference to the virtualised network resource realizing this link port.
in: body
required: true
type: object
vnf_link_ports:
description: |
Links ports of this VL.
in: body
required: false
type: array
vnf_state:
description: |
State of the VNF instance.
in: body
required: false
type: string
vnf_virtual_link_desc_id:
description: |
The identifier of the VLD in the VNFD for this VL.
in: body
required: true
type: string
vnf_virtual_link_resource_info:
description: |
Information about the virtualised network
resources used by the VLs of the VNF instance.
in: body
required: false
type: array
vnf_virtual_link_resource_info_id:
description: |
Identifier of this VnfVirtualLinkResourceInfo instance.
in: body
required: true
type: string
vnf_virtual_link_resource_info_network_resource:
description: |
Reference to the VirtualNetwork resource.
in: body
required: true
type: object
vnf_virtual_link_resource_info_vnf_virtual_link_desc_id:
description: |
Identifier of the VNF Virtual Link Descriptor (VLD) in the
VNFD.
in: body
required: true
type: string
vnfc_cp_info_cp_protocol_info:
description: |
Network protocol information for this CP.
in: body
required: false
type: array
vnfc_cp_info_cpd_id:
description: |
Identifier of the VDU CPD, cpdId, in the VNFD.
in: body
required: true
type: string
vnfc_cp_info_id:
description: |
Identifier of this VNFC CP instance and the associated array entry.
in: body
required: true
type: string
vnfc_cp_info_vnf_ext_cp_id:
description: |
When the VNFC CP is exposed as external CP of the VNF, the
identifier of this external VNF CP.
in: body
required: false
type: string
vnfc_cp_info_vnf_link_port_id:
description: |
Identifier of the "vnfLinkPorts" structure in the
"VnfVirtualLinkResourceInfo" structure. Shall be present if the CP is
associated to a link port.
in: body
required: false
type: string
vnfc_resource_info:
description: |
Information about the virtualised compute and storage resources used by
the VNFCs of the VNF instance.
in: body
required: false
type: array
vnfc_resource_info_compute_resource:
description: |
Reference to the VirtualCompute resource.
in: body
required: true
type: object
vnfc_resource_info_id:
description: |
Identifier of this VnfcResourceInfo instance.
in: body
required: true
type: string
vnfc_resource_info_ids:
description: |
List of VNFC instances requiring a healing action.
in: body
required: false
type: array
vnfc_resource_info_storage_resource_ids:
description: |
References to the VirtualStorage resources. The value refers to a
VirtualStorageResourceInfo item in the VnfInstance.
in: body
required: false
type: array
vnfc_resource_info_vdu_id:
description: |
Reference to the applicable VDU in the VNFD.
in: body
required: true
type: string
vnfc_resource_info_vnfc_cp_info:
description: |
CPs of the VNFC instance.
Shall be present when that particular CP
of the VNFC instance is associated to an external CP of the VNF
instance.
May be present otherwise.
in: body
required: false
type: array

View File

@ -0,0 +1,5 @@
{
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfInstanceName": "Instance name",
"vnfInstanceDescription": "Instance description"
}

View File

@ -0,0 +1,19 @@
{
"id": "1502ef16-8f4a-41f3-8c77-5a0eeee9c8d7",
"vnfInstanceName": "Instance name",
"vnfInstanceDescription": "Instance description",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfProvider": "Company name",
"vnfProductName": "Sample VNF",
"vnfSoftwareVersion": "1.0",
"vnfdVersion": "1.0",
"instantiationState": "NOT_INSTANTIATED",
"_links": {
"self": {
"href": "/vnflcm/v1/vnf_instances/1502ef16-8f4a-41f3-8c77-5a0eeee9c8d7"
},
"instantiate": {
"href": "/vnflcm/v1/vnf_instances/1502ef16-8f4a-41f3-8c77-5a0eeee9c8d7/instantiate"
}
}
}

View File

@ -0,0 +1,4 @@
{
"cause": "healing",
"vnfcInstanceId": ["c51c98dc-b918-4681-a9eb-4f32a57c4e08"]
}

View File

@ -0,0 +1,68 @@
{
"flavourId": "simple",
"extVirtualLinks": [
{
"id": "ext-vl-uuid-VL1"
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"extCps": [
{
"cpdId": "CP2",
"cpConfig": [
{
"linkPortId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
]
}
],
"extLinkPorts": [
{
"id": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"resourceHandle": {
"resourceId": "109f5049-b51e-409a-9a99-d740ba5f3acb",
"vimLevelResourceType": "LINKPORT"
}
}
]
},
{
"id": "ext-vl-uuid-VL1",
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"extCps": [
{
"cpdId": "CP1",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
}
}
]
}
]
}
]
}
],
"extManagedVirtualLinks": [
{
"id": "extMngVLnk-uuid_VL3",
"vnfVirtualLinkDescId": "VL4",
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f"
}
],
"vimConnectionInfo": [
{
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
"vimId": "c576eb55-5bec-4881-a573-5b0f3a05c370",
"vimType": "openstack"
}
]
}

View File

@ -0,0 +1,175 @@
[
{
"id": "8941a2ce-cf50-4d5f-8907-71a937902a50",
"vnfInstanceName": "Instance name",
"vnfInstanceDescription": "Instance description",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfProvider": "Company Name",
"vnfProductName": "Sample VNF",
"vnfSoftwareVersion": "1.0",
"vnfdVersion": "1.0",
"vimConnectionInfo": [
{
"vimType": "openstack",
"vimId": "7dc3c839-bf15-45ac-8dff-fc5b95c2940e",
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470"
}
],
"instantiationState": "INSTANTIATED",
"instantiatedVnfInfo": {
"flavourId": "simple",
"vnfState": "STARTED",
"extCpInfo": [
{
"cpProtocolInfo": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP2",
"id": "c7943daf-c702-41a1-b215-d5d40130d047"
},
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"id": "f5c68d94-5736-4e38-ade5-c9462514f8b9"
}
],
"extVirtualLinkInfo": [
{
"resourceHandle": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f"
},
"id": "ext-vl-uuid-VL1",
"extLinkPorts": [
{
"resourceHandle": {
"resourceId": "109f5049-b51e-409a-9a99-d740ba5f3acb",
"vimLevelResourceType": "LINKPORT"
},
"cpInstanceId": "f5c68d94-5736-4e38-ade5-c9462514f8b9",
"id": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28"
}
]
}
],
"extManagedVirtualLinkInfo": [
{
"vnfVirtualLinkDescId": "VL4",
"networkResource": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"vimLevelResourceType": "OS::Neutron::Net"
},
"id": "extMngVLnk-uuid_VL3"
}
],
"vnfcResourceInfo": [
{
"storageResourceIds": [],
"computeResource": {
"resourceId": "241ac10d-e522-4909-9379-c78135b960a2",
"vimLevelResourceType": "OS::Nova::Server"
},
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"vnfLinkPortId": "5c54a7f2-f738-49ee-9672-ce01486b9548",
"cpdId": "CP1",
"id": "4f879c91-1991-43a3-996e-90fefdb3de67"
},
{
"cpProtocolInfo": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"vnfLinkPortId": "9fc28e3f-36d2-44d8-b481-bfc7d7a4be27",
"cpdId": "CP2",
"vnfExtCpId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"id": "4ee9714a-8ae2-49e7-b2b4-2c00ed928425"
},
{
"vnfLinkPortId": "d7572a96-ef2a-423f-b21d-000c124b07d5",
"id": "d8ef6c78-ee5e-4845-a20d-db112f23b4ef",
"cpdId": "CP3"
}
],
"id": "a8a9d5ed-4e33-40ac-b7d7-4540d053d6da"
}
],
"vnfVirtualLinkResourceInfo": [
{
"networkResource": {
"resourceId": "f28e578a-0368-4f1a-b439-2fa552a084ec",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"resourceHandle": {
"resourceId": "c1719c85-b758-45e2-b6d3-98f0cbafe9f5",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "d8ef6c78-ee5e-4845-a20d-db112f23b4ef",
"id": "d7572a96-ef2a-423f-b21d-000c124b07d5"
}
],
"vnfVirtualLinkDescId": "VL3",
"id": "791e0266-3c8e-4dda-83ec-c0d26d0968ec"
},
{
"networkResource": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"resourceHandle": {
"resourceId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "4ee9714a-8ae2-49e7-b2b4-2c00ed928425",
"id": "9fc28e3f-36d2-44d8-b481-bfc7d7a4be27"
},
{
"resourceHandle": {
"resourceId": "0781c700-3f9c-4189-a688-582db8d1c853",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "4f879c91-1991-43a3-996e-90fefdb3de67",
"id": "5c54a7f2-f738-49ee-9672-ce01486b9548"
}
],
"vnfVirtualLinkDescId": "ext-vl-uuid-VL1",
"id": "d94ff4b1-8148-476e-a8c3-b14c5b1f5270"
}
],
"additionalParams": {}
},
"_links": {
"self": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50"
},
"terminate": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50/terminate"
},
"heal": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50/heal"
}
}
}
]

View File

@ -0,0 +1,173 @@
{
"id": "8941a2ce-cf50-4d5f-8907-71a937902a50",
"vnfInstanceName": "Instance name",
"vnfInstanceDescription": "Instance description",
"vnfdId": "b1bb0ce7-ebca-4fa7-95ed-4840d70a1177",
"vnfProvider": "Company Name",
"vnfProductName": "Sample VNF",
"vnfSoftwareVersion": "1.0",
"vnfdVersion": "1.0",
"vimConnectionInfo": [
{
"vimType": "openstack",
"vimId": "7dc3c839-bf15-45ac-8dff-fc5b95c2940e",
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470"
}
],
"instantiationState": "INSTANTIATED",
"instantiatedVnfInfo": {
"flavourId": "simple",
"vnfState": "STARTED",
"extCpInfo": [
{
"cpProtocolInfo": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP2",
"id": "c7943daf-c702-41a1-b215-d5d40130d047"
},
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"cpdId": "CP1",
"id": "f5c68d94-5736-4e38-ade5-c9462514f8b9"
}
],
"extVirtualLinkInfo": [
{
"resourceHandle": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f"
},
"id": "ext-vl-uuid-VL1",
"extLinkPorts": [
{
"resourceHandle": {
"resourceId": "109f5049-b51e-409a-9a99-d740ba5f3acb",
"vimLevelResourceType": "LINKPORT"
},
"cpInstanceId": "f5c68d94-5736-4e38-ade5-c9462514f8b9",
"id": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28"
}
]
}
],
"extManagedVirtualLinkInfo": [
{
"vnfVirtualLinkDescId": "VL4",
"networkResource": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"vimLevelResourceType": "OS::Neutron::Net"
},
"id": "extMngVLnk-uuid_VL3"
}
],
"vnfcResourceInfo": [
{
"storageResourceIds": [],
"computeResource": {
"resourceId": "241ac10d-e522-4909-9379-c78135b960a2",
"vimLevelResourceType": "OS::Nova::Server"
},
"vduId": "VDU1",
"vnfcCpInfo": [
{
"cpProtocolInfo": [
{
"ipOverEthernet": {
"macAddress": "fa:16:3e:22:17:05"
},
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"vnfLinkPortId": "5c54a7f2-f738-49ee-9672-ce01486b9548",
"cpdId": "CP1",
"id": "4f879c91-1991-43a3-996e-90fefdb3de67"
},
{
"cpProtocolInfo": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
],
"vnfLinkPortId": "9fc28e3f-36d2-44d8-b481-bfc7d7a4be27",
"cpdId": "CP2",
"vnfExtCpId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"id": "4ee9714a-8ae2-49e7-b2b4-2c00ed928425"
},
{
"vnfLinkPortId": "d7572a96-ef2a-423f-b21d-000c124b07d5",
"id": "d8ef6c78-ee5e-4845-a20d-db112f23b4ef",
"cpdId": "CP3"
}
],
"id": "a8a9d5ed-4e33-40ac-b7d7-4540d053d6da"
}
],
"vnfVirtualLinkResourceInfo": [
{
"networkResource": {
"resourceId": "f28e578a-0368-4f1a-b439-2fa552a084ec",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"resourceHandle": {
"resourceId": "c1719c85-b758-45e2-b6d3-98f0cbafe9f5",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "d8ef6c78-ee5e-4845-a20d-db112f23b4ef",
"id": "d7572a96-ef2a-423f-b21d-000c124b07d5"
}
],
"vnfVirtualLinkDescId": "VL3",
"id": "791e0266-3c8e-4dda-83ec-c0d26d0968ec"
},
{
"networkResource": {
"resourceId": "991a1e07-e8a2-4e1b-b77d-3937177a5b7f",
"vimLevelResourceType": "OS::Neutron::Net"
},
"vnfLinkPorts": [
{
"resourceHandle": {
"resourceId": "1d868d02-ecd4-4402-8e6b-54e77ebdcc28",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "4ee9714a-8ae2-49e7-b2b4-2c00ed928425",
"id": "9fc28e3f-36d2-44d8-b481-bfc7d7a4be27"
},
{
"resourceHandle": {
"resourceId": "0781c700-3f9c-4189-a688-582db8d1c853",
"vimLevelResourceType": "OS::Neutron::Port"
},
"cpInstanceId": "4f879c91-1991-43a3-996e-90fefdb3de67",
"id": "5c54a7f2-f738-49ee-9672-ce01486b9548"
}
],
"vnfVirtualLinkDescId": "ext-vl-uuid-VL1",
"id": "d94ff4b1-8148-476e-a8c3-b14c5b1f5270"
}
],
"additionalParams": {}
},
"_links": {
"self": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50"
},
"terminate": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50/terminate"
},
"heal": {
"href": "/vnflcm/v1/vnf_instances/8941a2ce-cf50-4d5f-8907-71a937902a50/heal"
}
}
}

View File

@ -0,0 +1,4 @@
{
"terminationType": "GRACEFUL",
"gracefulTerminationTimeout": 10
}

View File

@ -0,0 +1,527 @@
.. -*- rst -*-
=====================================================================
Virtualized Network Function Lifecycle Management Interface (VNF LCM)
=====================================================================
This interface manages the VNF lifecycle management operations of VNF instances.
This interface allows the NFVO to invoke VNF lifecycle management operations
of VNF instances towards the VNFM.
Creates a new VNF instance resource
===================================
.. rest_method:: POST /vnflcm/v1/vnf_instances
The POST method creates a new VNF instance resource.
As the result of successfully executing this method, a new Individual VNF
instance resource shall have been created, and the value of the
instantiationState attribute in the representation of that resource shall be
NOT_INSTANTIATED.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfdId: vnf_instance_create_request_vnfd_id
- vnfInstanceName: vnf_instance_create_request_name
- vnfInstanceDescription: vnf_instance_create_request_description
Request Example
---------------
.. literalinclude:: samples/vnflcm/create-vnf-instance-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters_vnflcm.yaml
- id: vnf_instance_id_response
- vnfInstanceName: vnf_instance_name
- vnfInstanceDescription: vnf_instance_description
- vnfdId: vnf_instance_vnfd_id
- vnfProvider: vnf_instance_vnf_provider
- vnfProductName: vnf_instance_vnf_product_name
- vnfSoftwareVersion: vnf_instance_vnf_software_version
- vnfdVersion: vnf_instance_vnfd_version
- instantiationState: vnf_instance_instantiation_state
- _links: vnf_instance_links
Response Example
----------------
.. literalinclude:: samples/vnflcm/create-vnf-instance-response.json
:language: javascript
Instantiate a VNF instance
==========================
.. rest_method:: POST /vnflcm/v1/vnf_instances/{vnfInstanceId}/instantiate
The POST method instantiates a VNF instance.
Once the VNFM has successfully completed the underlying VNF LCM operation
occurrence, it shall set the instantiationState attribute to the value
INSTANTIATED and the vnfState attribute to the value STARTED in the
representation of the Individual VNF instance resource.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfInstanceId: vnf_instance_id
- flavourId: flavour_id
- instantiationLevelId: instantiation_level_id
- extVirtualLinks: ext_virtual_links
- id: ext_virtual_links_id
- resourceId: ext_virtual_links_resource_id
- extCps: ext_cps
- cpdId: cpd_id
- cpConfig: cp_config
- cpInstanceId: cp_instance_id
- linkPortId: link_port_id
- cpProtocolData: cp_protocol_data
- layerProtocol: layer_protocol
- ipOverEthernet: ip_over_ethernet
- macAddress: mac_address
- ipAddresses: ip_addresses
- type: ip_address_type
- fixedAddresses: fixed_addresses
- subnetId: subnet_id
- extLinkPorts: ext_link_ports
- id: ext_link_port_id
- resourceHandle: ext_link_port_resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- extManagedVirtualLinks: ext_managed_virtual_links
- id: ext_managed_virtual_link_data_id
- vnfVirtualLinkDescId: vnf_virtual_link_desc_id
- resourceId: ext_managed_virtual_link_data_resource_id
- vimConnectionInfo: vnf_instance_vim_connection_info
- id: vim_connection_info_id
- vimId: vim_connection_info_vim_id
- vimType: vim_connection_info_vim_type
- accessInfo: vim_connection_info_access_info
- additionalParams: vnf_instance_additional_params
Request Example
---------------
.. literalinclude:: samples/vnflcm/instantiate-vnf-instance-request.json
:language: javascript
Terminate a VNF instance
========================
.. rest_method:: POST /vnflcm/v1/vnf_instances/{vnfInstanceId}/terminate
This task resource represents the "Terminate VNF" operation. The client can
use this resource to terminate a VNF instance.
The POST method terminates a VNF instance.
Once the VNFM has successfully completed the underlying VNF LCM operation
occurrence, it shall set the instantiationState attribute in the
representation of the Individual VNF instance resource to the value
NOT_INSTANTIATED.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfInstanceId: vnf_instance_id
- terminationType: termination_type
- gracefulTerminationTimeout: graceful_termination_timeout
Request Example
---------------
.. literalinclude:: samples/vnflcm/terminate-vnf-instance-request.json
:language: javascript
Heal a VNF instance
========================
.. rest_method:: POST /vnflcm/v1/vnf_instances/{vnfInstanceId}/heal
This task resource represents the "Heal VNF" operation. The client can use
this resource to request healing a VNF instance.
The POST method requests to heal a VNF instance.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfInstanceId: vnf_instance_id
- cause: cause
- vnfcInstanceId: vnfc_resource_info_ids
Request Example
---------------
.. literalinclude:: samples/vnflcm/heal-vnf-instance-request.json
:language: javascript
Delete a VNF instance
=====================
.. rest_method:: DELETE /vnflcm/v1/vnf_instances/{vnfInstanceId}
This method deletes an "Individual VNF instance" resource.
As the result of successfully executing this method, the
"Individual VNF instance" resource shall not exist any longer.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfInstanceId: vnf_instance_id
Show VNF Instance
==================
.. rest_method:: GET /vnflcm/v1/vnf_instances/{vnfInstanceId}
Show information of given individual VNF instance.
The GET method retrieves information about a VNF instance by reading
an "Individual VNF instance" resource.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request Parameters
------------------
.. rest_parameters:: parameters_vnflcm.yaml
- vnfInstanceId: vnf_instance_id
Response Parameters
-------------------
.. rest_parameters:: parameters_vnflcm.yaml
- id: vnf_instance_id
- vnfInstanceName: vnf_instance_name
- vnfInstanceDescription: vnf_instance_description
- vnfdId: vnf_instance_vnfd_id
- vnfProvider: vnf_instance_vnf_provider
- vnfProductName: vnf_instance_vnf_product_name
- vnfSoftwareVersion: vnf_instance_vnf_software_version
- vnfdVersion: vnf_instance_vnfd_version
- vimConnectionInfo: vnf_instance_vim_connection_info
- id: vim_connection_info_id
- vimId: vim_connection_info_vim_id
- vimType: vim_connection_info_vim_type
- accessInfo: vim_connection_info_access_info
- instantiationState: vnf_instance_instantiation_state
- instantiatedVnfInfo: instantiated_vnf_info
- flavourId: flavour_id_response
- vnfState: vnf_state
- extCpInfo: ext_cp_info
- id: ext_cp_info_id
- cpdId: ext_cp_info_cpd_id
- cpProtocolInfo: ext_cp_info_cp_protocol_info
- layerProtocol: layer_protocol_cp_info
- ipOverEthernet: ip_over_ethernet_cp_info
- macAddress: mac_address_cp_info
- ipAddresses: ip_addresses_cp_info
- type: ip_address_type
- addresses: fixed_addresses
- isDynamic: is_dynamic
- subnetId: subnet_id
- extLinkPortId: ext_cp_info_ext_link_port_id
- extVirtualLinkInfo: ext_virtual_link_info
- id: ext_virtual_link_info_id
- resourceHandle: resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- extLinkPorts: ext_virtual_link_info_ext_link_ports
- id: ext_virtual_link_info_ext_link_ports_id
- resourceHandle: resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: ext_virtual_link_info_ext_link_ports_cp_instance_id
- extManagedVirtualLinkInfo: ext_managed_virtual_link_info
- id: ext_managed_virtual_link_info_id
- vnfVirtualLinkDescId: ext_managed_virtual_link_info_vnf_virtual_link_desc_id
- networkResource: ext_managed_virtual_link_info_network_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- vnfLinkPorts: vnf_link_ports
- id: vnf_link_port_id
- resourceHandle: vnf_link_port_resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: vnf_link_port_cp_instance_id
- vnfcResourceInfo: vnfc_resource_info
- id: vnfc_resource_info_id
- vduId: vnfc_resource_info_vdu_id
- computeResource: vnfc_resource_info_compute_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- storageResourceIds: vnfc_resource_info_storage_resource_ids
- vnfcCpInfo: vnfc_resource_info_vnfc_cp_info
- id: vnfc_cp_info_id
- cpdId: vnfc_cp_info_cpd_id
- vnfExtCpId: vnfc_cp_info_vnf_ext_cp_id
- cpProtocolInfo: vnfc_cp_info_cp_protocol_info
- layerProtocol: layer_protocol_cp_info
- ipOverEthernet: ip_over_ethernet_cp_info
- macAddress: mac_address_cp_info
- ipAddresses: ip_addresses_cp_info
- type: ip_address_type
- addresses: fixed_addresses
- isDynamic: is_dynamic
- subnetId: subnet_id
- vnfLinkPortId: vnfc_cp_info_vnf_link_port_id
- vnfVirtualLinkResourceInfo: vnf_virtual_link_resource_info
- id: vnf_virtual_link_resource_info_id
- vnfVirtualLinkDescId: vnf_virtual_link_resource_info_vnf_virtual_link_desc_id
- networkResource: vnf_virtual_link_resource_info_network_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- vnfLinkPorts: vnf_link_ports
- id: vnf_link_port_id
- resourceHandle: vnf_link_port_resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: vnf_link_port_cp_instance_id
- virtualStorageResourceInfo: virtual_storage_resource_info
- id: virtual_storage_resource_info_id
- virtualStorageDescId: virtual_storage_resource_info_virtual_storage_desc_id
- storageResource: virtual_storage_resource_info_storage_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- _links: vnf_instance_links
Response Example
----------------
.. literalinclude:: samples/vnflcm/show-vnf-instance-response.json
:language: javascript
List VNF Instance
==================
.. rest_method:: GET /vnflcm/v1/vnf_instances
The GET method queries information about multiple VNF instances.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Response Parameters
-------------------
.. rest_parameters:: parameters_vnflcm.yaml
- id: vnf_instance_id
- vnfInstanceName: vnf_instance_name
- vnfInstanceDescription: vnf_instance_description
- vnfdId: vnf_instance_vnfd_id
- vnfProvider: vnf_instance_vnf_provider
- vnfProductName: vnf_instance_vnf_product_name
- vnfSoftwareVersion: vnf_instance_vnf_software_version
- vnfdVersion: vnf_instance_vnfd_version
- vimConnectionInfo: vnf_instance_vim_connection_info
- id: vim_connection_info_id
- vimId: vim_connection_info_vim_id
- vimType: vim_connection_info_vim_type
- accessInfo: vim_connection_info_access_info
- instantiationState: vnf_instance_instantiation_state
- instantiatedVnfInfo: instantiated_vnf_info
- flavourId: flavour_id_response
- vnfState: vnf_state
- extCpInfo: ext_cp_info
- id: ext_cp_info_id
- cpdId: ext_cp_info_cpd_id
- cpProtocolInfo: ext_cp_info_cp_protocol_info
- layerProtocol: layer_protocol_cp_info
- ipOverEthernet: ip_over_ethernet_cp_info
- macAddress: mac_address_cp_info
- ipAddresses: ip_addresses_cp_info
- type: ip_address_type
- addresses: fixed_addresses
- isDynamic: is_dynamic
- subnetId: subnet_id
- extLinkPortId: ext_cp_info_ext_link_port_id
- extVirtualLinkInfo: ext_virtual_link_info
- id: ext_virtual_link_info_id
- resourceHandle: resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- extLinkPorts: ext_virtual_link_info_ext_link_ports
- id: ext_virtual_link_info_ext_link_ports_id
- resourceHandle: resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: ext_virtual_link_info_ext_link_ports_cp_instance_id
- extManagedVirtualLinkInfo: ext_managed_virtual_link_info
- id: ext_managed_virtual_link_info_id
- vnfVirtualLinkDescId: ext_managed_virtual_link_info_vnf_virtual_link_desc_id
- networkResource: ext_managed_virtual_link_info_network_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- vnfLinkPorts: vnf_link_ports
- id: vnf_link_port_id
- resourceHandle: vnf_link_port_resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: vnf_link_port_cp_instance_id
- vnfcResourceInfo: vnfc_resource_info
- id: vnfc_resource_info_id
- vduId: vnfc_resource_info_vdu_id
- computeResource: vnfc_resource_info_compute_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- storageResourceIds: vnfc_resource_info_storage_resource_ids
- vnfcCpInfo: vnfc_resource_info_vnfc_cp_info
- id: vnfc_cp_info_id
- cpdId: vnfc_cp_info_cpd_id
- vnfExtCpId: vnfc_cp_info_vnf_ext_cp_id
- cpProtocolInfo: vnfc_cp_info_cp_protocol_info
- layerProtocol: layer_protocol_cp_info
- ipOverEthernet: ip_over_ethernet_cp_info
- macAddress: mac_address_cp_info
- ipAddresses: ip_addresses_cp_info
- type: ip_address_type
- addresses: fixed_addresses
- isDynamic: is_dynamic
- subnetId: subnet_id
- vnfLinkPortId: vnfc_cp_info_vnf_link_port_id
- vnfVirtualLinkResourceInfo: vnf_virtual_link_resource_info
- id: vnf_virtual_link_resource_info_id
- vnfVirtualLinkDescId: vnf_virtual_link_resource_info_vnf_virtual_link_desc_id
- networkResource: vnf_virtual_link_resource_info_network_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- vnfLinkPorts: vnf_link_ports
- id: vnf_link_port_id
- resourceHandle: vnf_link_port_resource_handle
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- cpInstanceId: vnf_link_port_cp_instance_id
- virtualStorageResourceInfo: virtual_storage_resource_info
- id: virtual_storage_resource_info_id
- virtualStorageDescId: virtual_storage_resource_info_virtual_storage_desc_id
- storageResource: virtual_storage_resource_info_storage_resource
- resourceId: resource_handle_resource_id
- vimLevelResourceType: resource_handle_vim_level_resource_type
- _links: vnf_instance_links
Response Example
----------------
.. literalinclude:: samples/vnflcm/list-vnf-instance-response.json
:language: javascript