Legacy Tacker API

API versions

Lists information of NFV Orchestration API versions.

GET
/

List versions

Lists NFV Orchestration API versions.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

versions

body

array

A list of version objects.

status

body

string

Status of the API, which can be CURRENT, STABLE or DEPRECATED.

id

body

string

Version of the API.

links

body

array

List of version links. Each link contains href and rel.

href

body

string

Link to the API.

rel

body

string

Relationship of link with the version.

Response Example

{
    "versions": [
        {
            "status": "CURRENT",
            "id": "v1.0",
            "links": [
                {
                    "href": "http://192.168.1.1:9890/v1.0",
                    "rel": "self"
                }
            ]
        }
    ]
}

Extensions

Lists extensions and shows information of a given extension.

Extensions introduce features to the API.

GET
/v1.0/extensions

List extensions

Lists available extensions.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

extensions

body

array

A list of extension objects.

updated

body

string

The date and time when the resource was updated. The format is ISO 8601: YYYY-MM-DDThh:mm:ss±hh:mm. For example, 2016-09-23 09:59:27-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC.

name

body

string

Human-readable name for the resource.

links

body

array

A list of links related to the extension.

alias

body

string

The alias for the extension. For example, “Commonservices”, “NFVO” or “VNFM”.

description

body

string

Human-readable description for the resource.

Response Example

{
    "extensions": [
        {
            "updated": "2013-11-19T10:00:00-00:00",
            "name": "VNF Manager",
            "links": [],
            "namespace": "http://wiki.openstack.org/Tacker",
            "alias": "VNFM",
            "description": "Extension for VNF Manager"
        },
        {
            "updated": "2016-06-06T13:00:00-00:00",
            "name": "COMMONSERVICES",
            "links": [],
            "namespace": "http://wiki.openstack.org/Tacker",
            "alias": "Commonservices",
            "description": "Extension for CommonServices"
        },
        {
            "updated": "2015-12-21T10:00:00-00:00",
            "name": "NFV Orchestrator",
            "links": [],
            "namespace": "http://wiki.openstack.org/Tacker",
            "alias": "NFVO",
            "description": "Extension for NFV Orchestrator"
        }
    ]
}
GET
/v1.0/extensions/{alias}

Show extension

Shows information of a given extension.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

alias

path

string

The alias of the extension.

Response Parameters

Name

In

Type

Description

extension

body

array

A list of extension objects.

updated

body

string

The date and time when the resource was updated. The format is ISO 8601: YYYY-MM-DDThh:mm:ss±hh:mm. For example, 2016-09-23 09:59:27-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC.

name

body

string

Human-readable name for the resource.

links

body

array

A list of links related to the extension.

alias

body

string

The alias for the extension. For example, “Commonservices”, “NFVO” or “VNFM”.

description

body

string

Human-readable description for the resource.

Response Example

{
    "extension": {
        "updated": "2013-11-19T10:00:00-00:00",
        "name": "VNF Manager",
        "links": [],
        "namespace": "http://wiki.openstack.org/Tacker",
        "alias": "VNFM",
        "description": "Extension for VNF Manager"
    }
}

Virtualized Network Function Descriptors (VNFDs)

Manages Virtualized Network Function Descriptors (VNFDs).

The VNFD is a template which describes information about deployment and behavior of Virtualized Network Functions (VNFs). For more information, see VNF Descriptor Template Guide.

POST
/v1.0/vnfds

Create VNFD

Creates a VNFD.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

name

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

service_types

body

array

A list of service type.

attributes

body

object

Attributes necessary for spinning up VNF.

Request Example

{
  "vnfd": {
    "tenant_id": "689708956a2d4ae0a27120d3aca6a560",
    "name": "vnfd-sample",
    "description": "Sample",
    "service_types": [
      {
        "service_type": "vnfd"
      }
    ],
    "attributes": {
      "vnfd": {
        "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0",
        "description": "Demo example",
        "metadata": {
          "template_name": "sample-tosca-vnfd"
        },
        "topology_template": {
          "node_templates": {
            "VDU1": {
              "type": "tosca.nodes.nfv.VDU.Tacker",
              "capabilities": {
                "nfv_compute": {
                  "properties": {
                    "num_cpus": 1,
                    "mem_size": "512 MB",
                    "disk_size": "1 GB"
                  }
                }
              },
              "properties": {
                "image": "cirros-0.5.2-x86_64-disk"
              }
            },
            "CP1": {
              "type": "tosca.nodes.nfv.CP.Tacker",
              "properties": {
                "order": 0,
                "management": true,
                "anti_spoofing_protection": false
              },
              "requirements": [
                {
                  "virtualLink": {
                    "node": "VL1"
                  }
                },
                {
                  "virtualBinding": {
                    "node": "VDU1"
                  }
                }
              ]
            },
            "VL1": {
              "type": "tosca.nodes.nfv.VL",
              "properties": {
                "vendor": "Tacker",
                "network_name": "net_mgmt"
              }
            }
          }
        }
      }
    }
  }
}

Response Parameters

Name

In

Type

Description

vnfd

body

object

A vnfd object.

service_types

body

array

A list of service type.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up VNF.

id (Optional)

body

string

The UUID of the VNFD.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnfd": {
        "service_types": [
            {
                "service_type": "vnfd",
                "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d"
            }
        ],
        "description": "Sample",
        "tenant_id": "689708956a2d4ae0a27120d3aca6a560",
        "created_at": "2016-10-20 07:38:54.600003",
        "updated_at": null,
        "attributes": {
            "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n  node_templates:\n    CP1:\n      properties: {anti_spoofing_protection: false, management: true, order: 0}\n      requirements:\n      - virtualLink: {node: VL1}\n      - virtualBinding: {node: VDU1}\n      type: tosca.nodes.nfv.CP.Tacker\n    VDU1:\n      capabilities:\n        nfv_compute:\n          properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n      properties: {image: cirros-0.5.2-x86_64-disk}\n      type: tosca.nodes.nfv.VDU.Tacker\n    VL1:\n      properties: {network_name: net_mgmt, vendor: Tacker}\n      type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
        },
        "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831",
        "name": "vnfd-sample"
    }
}
GET
/v1.0/vnfds

List VNFDs

Lists VNFDs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

vnfds

body

array

A list of vnfd objects.

service_types

body

array

A list of service type.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up VNF.

id (Optional)

body

string

The UUID of the VNFD.

name

body

string

Human-readable name for the resource.

template_source (Optional)

body

string

Source of VNFD.

Response Example

{
    "vnfds": [
        {
            "service_types": [
                {
                    "service_type": "vnfd",
                    "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d"
                }
            ],
            "description": "Sample",
            "tenant_id": "689708956a2d4ae0a27120d3aca6a560",
            "created_at": "2016-10-20 07:38:54",
            "updated_at": null,
            "attributes": {
                "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n  node_templates:\n    CP1:\n      properties: {anti_spoofing_protection: false, management: true, order: 0}\n      requirements:\n      - virtualLink: {node: VL1}\n      - virtualBinding: {node: VDU1}\n      type: tosca.nodes.nfv.CP.Tacker\n    VDU1:\n      capabilities:\n        nfv_compute:\n          properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n      properties: {image: cirros-0.5.2-x86_64-disk}\n      type: tosca.nodes.nfv.VDU.Tacker\n    VL1:\n      properties: {network_name: net_mgmt, vendor: Tacker}\n      type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
            },
            "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831",
            "name": "vnfd-sample",
            "template_source": "onboarded or inline"
        }
    ]
}
GET
/v1.0/vnfds/{vnfd_id}

Show VNFD

Shows information of a given VNFD.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnfd_id

path

string

The UUID of the VNFD.

Response Parameters

Name

In

Type

Description

vnfd

body

object

A vnfd object.

service_types

body

array

A list of service type.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up VNF.

id (Optional)

body

string

The UUID of the VNFD.

name

body

string

Human-readable name for the resource.

template_source (Optional)

body

string

Source of VNFD.

Response Example

{
    "vnfd": {
        "service_types": [
            {
                "service_type": "vnfd",
                "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d"
            }
        ],
        "description": "Sample",
        "tenant_id": "689708956a2d4ae0a27120d3aca6a560",
        "created_at": "2016-10-20 07:38:54",
        "updated_at": null,
        "attributes": {
            "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n  node_templates:\n    CP1:\n      properties: {anti_spoofing_protection: false, management: true, order: 0}\n      requirements:\n      - virtualLink: {node: VL1}\n      - virtualBinding: {node: VDU1}\n      type: tosca.nodes.nfv.CP.Tacker\n    VDU1:\n      capabilities:\n        nfv_compute:\n          properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n      properties: {image: cirros-0.5.2-x86_64-disk}\n      type: tosca.nodes.nfv.VDU.Tacker\n    VL1:\n      properties: {network_name: net_mgmt, vendor: Tacker}\n      type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
        },
        "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831",
        "name": "vnfd-sample",
        "template_source": "onboarded or inline"
    }
}
PUT
/v1.0/vnfds/{vnfd_id}

Update VNFD

Updates a given VNFD.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnfd_id

path

string

The UUID of the VNFD.

name (Optional)

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

Request Example

{
  "vnfd": {
    "name": "vnfd-sample-updated",
    "description": "Updated sample"
  }
}

Response Parameters

Name

In

Type

Description

vnfd

body

object

A vnfd object.

service_types

body

array

A list of service type.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up VNF.

id (Optional)

body

string

The UUID of the VNFD.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnfd": {
        "service_types": [
            {
                "service_type": "vnfd",
                "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d"
            }
        ],
        "description": "Updated sample",
        "tenant_id": "689708956a2d4ae0a27120d3aca6a560",
        "created_at": "2016-10-20 07:38:54",
        "updated_at": "2016-10-20 07:41:27.392759",
        "attributes": {
            "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n  node_templates:\n    CP1:\n      properties: {anti_spoofing_protection: false, management: true, order: 0}\n      requirements:\n      - virtualLink: {node: VL1}\n      - virtualBinding: {node: VDU1}\n      type: tosca.nodes.nfv.CP.Tacker\n    VDU1:\n      capabilities:\n        nfv_compute:\n          properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n      properties: {image: cirros-0.5.2-x86_64-disk}\n      type: tosca.nodes.nfv.VDU.Tacker\n    VL1:\n      properties: {network_name: net_mgmt, vendor: Tacker}\n      type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
        },
        "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831",
        "name": "vnfd-sample-updated"
    }
}
DELETE
/v1.0/vnfds/{vnfd_id}

Delete VNFD

Deletes a given VNFD. Only a VNFD without any associated VNFs can be deleted.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnfd_id

path

string

The UUID of the VNFD.

Virtualized Network Functions (VNFs)

Manages Virtualized Network Functions (VNFs) and their resources.

The VNF takes on the responsibility for handling specific network functions.

POST
/v1.0/vnfs

Create VNF

Creates a VNF.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf

body

object

A vnf object.

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

vnfd_id (Optional)

body

string

The UUID of the VNFD.

vim_id (Optional)

body

string

The UUID of the VIM.

name

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

attributes (Optional)

body

object

VNF attributes object. This object can contain config and param_values.

config (Optional)

body

object

VNF configuration object.

param_values (Optional)

body

object

VNF parameter object. These parameters will be substituted for VNF if the VNFD template is appropriately parameterized. See VNFD Template Parameterization for more information.

placement_attr (Optional)

body

object

VNF placement information object. This object includes region_name.

vnfd_template (Optional)

body

object

Template to create VNF.

Request Example

{
    "vnf": {
        "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
        "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
        "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
        "name": "OpenWRT",
        "description": "OpenWRT VNF",
        "attributes": {
            "config": {
                "vdus": {
                    "vdu1": {
                        "config": {
                            "firewall": "package firewall\n"
                        }
                    }
                }
            },
            "param_values": {
                "vdus": {
                    "vdu1": {
                        "param": {
                            "vdu-name": "openwrt_vdu1"
                        }
                    }
                }
            }
        },
        "placement_attr": {
            "region_name": "RegionOne"
        }
    }
}

Response Parameters

Name

In

Type

Description

vnf

body

object

A vnf object.

status

body

string

Status of the VNF.

description

body

string

Human-readable description for the resource.

vnfd_id (Optional)

body

string

The UUID of the VNFD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VNF was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the VNF was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

instance_id

body

string

A UUID information to uniquely identify the instance of VNF. This instance is equivalent to a Heat stack when using “openstack” type VIM.

mgmt_ip_address

body

string

Management ip address for the VNF.

vim_id

body

string

The UUID of the VIM.

placement_attr

body

object

VNF placement information object. This object includes region_name and vim_name.

error_reason

body

string

Reason for VNF error, if any.

attributes

body

object

VNF attributes object. This object can contain config, param_values, monitoring_policy, and heat_template.

config

body

string

VNF configuration object.

param_values

body

string

VNF parameter object. These parameters will be substituted for VNF if the VNFD template is appropriately parameterized. See VNFD Template Parameterization for more information.

monitoring_policy

body

string

Monitoring policy which is derived from the VNFD template.

heat_template

body

string

Heat template which is translated from the VNFD template.

id

body

string

The UUID of the VNF.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnf": {
        "status": "PENDING_CREATE",
        "description": "OpenWRT VNFD with parameterized VDU name",
        "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
        "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
        "created_at": "2016-10-25 10:15:06.959431",
        "updated_at": null,
        "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e",
        "mgmt_ip_address": null,
        "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
        "placement_attr": {
            "region_name": "RegionOne",
            "vim_name": "VIM0"
        },
        "error_reason": null,
        "attributes": {
            "config": "vdus:\n  vdu1:\n    config: {firewall: 'package firewall\n\n        '}\n",
            "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n  '\nparameters:\n  vdu-name:\n    type: string\n    description: Vdu name\n    default: test-vdu\nresources:\n  CP1:\n    type: OS::Neutron::Port\n    properties:\n      network: net_mgmt\n      port_security_enabled: false\n  CP2:\n    type: OS::Neutron::Port\n    properties:\n      network: net0\n      port_security_enabled: false\n  CP3:\n    type: OS::Neutron::Port\n    properties:\n      network: net1\n      port_security_enabled: false\n  VDU1:\n    type: OS::Nova::Server\n    properties:\n      config_drive: false\n      flavor: {get_resource: VDU1_flavor}\n      image: OpenWRT\n      name:\n        get_param: vdu-name\n      networks:\n      - port:\n          get_resource: CP1\n      - port:\n          get_resource: CP2\n      - port:\n          get_resource: CP3\n      user_data_format: SOFTWARE_CONFIG\n  VDU1_flavor:\n    properties: {disk: 1, ram: 512, vcpus: 1}\n    type: OS::Nova::Flavor\noutputs:\n  mgmt_ip-VDU1:\n    value:\n      get_attr: [CP1, fixed_ips, 0, ip_address]\n",
            "param_values": "vdus:\n  vdu1:\n    param: {vdu-name: openwrt_vdu1}\n",
            "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}"
        },
        "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef",
        "name": "OpenWRT"
    }
}
GET
/v1.0/vnfs

List VNFs

Lists VNFs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

vnfs

body

array

A list of vnf objects.

status

body

string

Status of the VNF.

description

body

string

Human-readable description for the resource.

vnfd_id (Optional)

body

string

The UUID of the VNFD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VNF was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the VNF was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

instance_id

body

string

A UUID information to uniquely identify the instance of VNF. This instance is equivalent to a Heat stack when using “openstack” type VIM.

mgmt_ip_address

body

string

Management ip address for the VNF.

vim_id

body

string

The UUID of the VIM.

placement_attr

body

object

VNF placement information object. This object includes region_name and vim_name.

error_reason

body

string

Reason for VNF error, if any.

attributes

body

object

VNF attributes object. This object can contain config, param_values, monitoring_policy, and heat_template.

config

body

string

VNF configuration object.

param_values

body

string

VNF parameter object. These parameters will be substituted for VNF if the VNFD template is appropriately parameterized. See VNFD Template Parameterization for more information.

monitoring_policy

body

string

Monitoring policy which is derived from the VNFD template.

heat_template

body

string

Heat template which is translated from the VNFD template.

id

body

string

The UUID of the VNF.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnfs": [
        {
            "status": "ACTIVE",
            "description": "OpenWRT VNFD with parameterized VDU name",
            "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
            "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
            "created_at": "2016-10-25 10:15:06",
            "updated_at": null,
            "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e",
            "mgmt_ip_address": "{\"VDU1\": \"192.168.120.3\"}",
            "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
            "placement_attr": {
                "region_name": "RegionOne",
                "vim_name": "VIM0"
            },
            "error_reason": null,
            "attributes": {
                "config": "vdus:\n  vdu1:\n    config: {firewall: 'package firewall\n\n        '}\n",
                "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}",
                "param_values": "vdus:\n  vdu1:\n    param: {vdu-name: openwrt_vdu1}\n",
                "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n  '\nparameters:\n  vdu-name:\n    type: string\n    description: Vdu name\n    default: test-vdu\nresources:\n  CP1:\n    type: OS::Neutron::Port\n    properties:\n      network: net_mgmt\n      port_security_enabled: false\n  CP2:\n    type: OS::Neutron::Port\n    properties:\n      network: net0\n      port_security_enabled: false\n  CP3:\n    type: OS::Neutron::Port\n    properties:\n      network: net1\n      port_security_enabled: false\n  VDU1:\n    type: OS::Nova::Server\n    properties:\n      config_drive: false\n      flavor: {get_resource: VDU1_flavor}\n      image: OpenWRT\n      name:\n        get_param: vdu-name\n      networks:\n      - port:\n          get_resource: CP1\n      - port:\n          get_resource: CP2\n      - port:\n          get_resource: CP3\n      user_data_format: SOFTWARE_CONFIG\n  VDU1_flavor:\n    properties: {disk: 1, ram: 512, vcpus: 1}\n    type: OS::Nova::Flavor\noutputs:\n  mgmt_ip-VDU1:\n    value:\n      get_attr: [CP1, fixed_ips, 0, ip_address]\n"
            },
            "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef",
            "name": "OpenWRT"
        }
    ]
}
GET
/v1.0/vnfs/{vnf_id}

Show VNF

Shows information of a given VNF.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf_id

path

string

The UUID of the VNF.

Response Parameters

Name

In

Type

Description

vnf

body

object

A vnf object.

status

body

string

Status of the VNF.

description

body

string

Human-readable description for the resource.

vnfd_id (Optional)

body

string

The UUID of the VNFD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VNF was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the VNF was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

instance_id

body

string

A UUID information to uniquely identify the instance of VNF. This instance is equivalent to a Heat stack when using “openstack” type VIM.

mgmt_ip_address

body

string

Management ip address for the VNF.

vim_id

body

string

The UUID of the VIM.

placement_attr

body

object

VNF placement information object. This object includes region_name and vim_name.

error_reason

body

string

Reason for VNF error, if any.

attributes

body

object

VNF attributes object. This object can contain config, param_values, monitoring_policy, and heat_template.

config

body

string

VNF configuration object.

param_values

body

string

VNF parameter object. These parameters will be substituted for VNF if the VNFD template is appropriately parameterized. See VNFD Template Parameterization for more information.

monitoring_policy

body

string

Monitoring policy which is derived from the VNFD template.

heat_template

body

string

Heat template which is translated from the VNFD template.

id

body

string

The UUID of the VNF.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnf": {
        "status": "ACTIVE",
        "description": "OpenWRT VNFD with parameterized VDU name",
        "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
        "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
        "created_at": "2016-10-25 10:15:06",
        "updated_at": "2016-10-25 10:16:43",
        "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e",
        "mgmt_ip_address": "{\"VDU1\": \"192.168.120.3\"}",
        "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
        "placement_attr": {
            "region_name": "RegionOne",
            "vim_name": "VIM0"
        },
        "error_reason": null,
        "attributes": {
            "config": "vdus:\n  vdu1:\n    config: {firewall: 'package firewall\n\n        '}\n",
            "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}",
            "param_values": "vdus:\n  vdu1:\n    param: {vdu-name: openwrt_vdu1}\n",
            "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n  '\nparameters:\n  vdu-name:\n    type: string\n    description: Vdu name\n    default: test-vdu\nresources:\n  CP1:\n    type: OS::Neutron::Port\n    properties:\n      network: net_mgmt\n      port_security_enabled: false\n  CP2:\n    type: OS::Neutron::Port\n    properties:\n      network: net0\n      port_security_enabled: false\n  CP3:\n    type: OS::Neutron::Port\n    properties:\n      network: net1\n      port_security_enabled: false\n  VDU1:\n    type: OS::Nova::Server\n    properties:\n      config_drive: false\n      flavor: {get_resource: VDU1_flavor}\n      image: OpenWRT\n      name:\n        get_param: vdu-name\n      networks:\n      - port:\n          get_resource: CP1\n      - port:\n          get_resource: CP2\n      - port:\n          get_resource: CP3\n      user_data_format: SOFTWARE_CONFIG\n  VDU1_flavor:\n    properties: {disk: 1, ram: 512, vcpus: 1}\n    type: OS::Nova::Flavor\noutputs:\n  mgmt_ip-VDU1:\n    value:\n      get_attr: [CP1, fixed_ips, 0, ip_address]\n"
        },
        "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef",
        "name": "OpenWRT"
    }
}
PUT
/v1.0/vnfs/{vnf_id}

Update VNF

Updates a given VNF.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf_id

path

string

The UUID of the VNF.

attributes (Optional)

body

object

VNF attributes object. This object can contain config object.

config (Optional)

body

object

VNF configuration object.

Request Example

{
    "vnf": {
        "attributes": {
            "config": {
                "vdus": {
                    "VDU1": {
                        "config": {
                            "firewall": "package firewall\n\nconfig defaults\n    option syn_flood 1\n    option input ACCEPT\n    option output ACCEPT\n    option forward REJECT\n"
                        }
                    }
                }
            }
        }
    }
}

Response Parameters

Name

In

Type

Description

vnf

body

object

A vnf object.

status

body

string

Status of the VNF.

description

body

string

Human-readable description for the resource.

vnfd_id (Optional)

body

string

The UUID of the VNFD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VNF was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the VNF was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

instance_id

body

string

A UUID information to uniquely identify the instance of VNF. This instance is equivalent to a Heat stack when using “openstack” type VIM.

mgmt_ip_address

body

string

Management ip address for the VNF.

vim_id

body

string

The UUID of the VIM.

placement_attr

body

object

VNF placement information object. This object includes region_name and vim_name.

error_reason

body

string

Reason for VNF error, if any.

attributes

body

object

VNF attributes object. This object can contain config, param_values, monitoring_policy, and heat_template.

config

body

string

VNF configuration object.

param_values

body

string

VNF parameter object. These parameters will be substituted for VNF if the VNFD template is appropriately parameterized. See VNFD Template Parameterization for more information.

monitoring_policy

body

string

Monitoring policy which is derived from the VNFD template.

heat_template

body

string

Heat template which is translated from the VNFD template.

id

body

string

The UUID of the VNF.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnf": {
        "status": "PENDING_UPDATE",
        "description": "OpenWRT VNFD with parameterized VDU name",
        "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
        "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
        "created_at": "2016-10-25 10:15:06",
        "updated_at": "2016-10-25 10:16:43",
        "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e",
        "mgmt_ip_address": "{\"VDU1\": \"192.168.120.3\"}",
        "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
        "placement_attr": {
            "region_name": "RegionOne",
            "vim_name": "VIM0"
        },
        "error_reason": null,
        "attributes": {
            "config": "vdus:\n  VDU1:\n    config: {firewall: \"package firewall\\n\\nconfig defaults\\n    option syn_flood\\\n        \\ 1\\n    option input ACCEPT\\n    option output ACCEPT\\n    option forward\\\n        \\ REJECT\\n\"}\n  vdu1:\n    config: {firewall: 'package firewall\n\n        '}\n",
            "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}",
            "param_values": "vdus:\n  vdu1:\n    param: {vdu-name: openwrt_vdu1}\n",
            "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n  '\nparameters:\n  vdu-name:\n    type: string\n    description: Vdu name\n    default: test-vdu\nresources:\n  CP1:\n    type: OS::Neutron::Port\n    properties:\n      network: net_mgmt\n      port_security_enabled: false\n  CP2:\n    type: OS::Neutron::Port\n    properties:\n      network: net0\n      port_security_enabled: false\n  CP3:\n    type: OS::Neutron::Port\n    properties:\n      network: net1\n      port_security_enabled: false\n  VDU1:\n    type: OS::Nova::Server\n    properties:\n      config_drive: false\n      flavor: {get_resource: VDU1_flavor}\n      image: OpenWRT\n      name:\n        get_param: vdu-name\n      networks:\n      - port:\n          get_resource: CP1\n      - port:\n          get_resource: CP2\n      - port:\n          get_resource: CP3\n      user_data_format: SOFTWARE_CONFIG\n  VDU1_flavor:\n    properties: {disk: 1, ram: 512, vcpus: 1}\n    type: OS::Nova::Flavor\noutputs:\n  mgmt_ip-VDU1:\n    value:\n      get_attr: [CP1, fixed_ips, 0, ip_address]\n"
        },
        "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef",
        "name": "OpenWRT"
    }
}
DELETE
/v1.0/vnfs/{vnf_id}

Delete VNF

Deletes a given VNF.

Note

Non-admin users are not allowed to delete a VNF in PENDING_CREATE and PENDING_DELETE status. In this case, it would return 409 error. Admin users can delete a VNF in any status with force flag true.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf_id

path

string

The UUID of the VNF.

attributes (Optional)

body

object

VNF attributes object with force key which can contain true/false value.

Request Example

Admin user can request to delete VNF forcefully.

{
    "vnf": {
        "attributes": {
            "force": true
            }
        }
}
GET
/v1.0/vnfs/{vnf_id}/resources

List VNF resources

Lists resources, such as VDU/CP, of a given VNF.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf_id

path

string

The UUID of the VNF.

Response Parameters

Name

In

Type

Description

resources

body

array

A list of VNF resource objects.

type

body

string

The type of the VNF resource. This is equivalent to Heat stack resource type.

name

body

string

The name of the VNF resource. This is equivalent to Heat stack resource name.

id

body

string

The UUID of the VNF resource. This is equivalent to Heat stack resource ID.

Response Example

{
    "resources": [
        {
            "type": "OS::Nova::Server",
            "name": "VDU1",
            "id": "94c19bcf-6c89-4129-98fe-759e37e2f8c7"
        },
        {
            "type": "OS::Neutron::Port",
            "name": "CP1",
            "id": "20602131-03f9-4cb2-b9fe-24bf56f1bb4f"
        },
        {
            "type": "OS::Neutron::Port",
            "name": "CP2",
            "id": "ff641e7d-35f9-4095-a1f7-c3f6fb2fa294"
        },
        {
            "type": "OS::Neutron::Port",
            "name": "CP3",
            "id": "ebe816df-3bc0-48a8-9278-140809d1d953"
        },
        {
            "type": "OS::Nova::Flavor",
            "name": "VDU1_flavor",
            "id": "0f5e0bf2-f1a9-4474-aff9-cfffad22c5f8"
        }
    ]
}
POST
/v1.0/vnfs/{vnf_id}/actions

Trigger VNF scaling

Triggers VNF scaling action.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnf_id

path

string

The UUID of the VNF.

scale

body

object

A VNF scale object, which contains policy and type.

policy

body

string

Scaling policy defined in VNFD template. For more information, see VNFD scaling.

type

body

string

Scaling type, which is either in or out.

Request Example

{
    "scale": {
        "policy": "SP1",
        "type": "out"
    }
}

Response Parameters

Name

In

Type

Description

scale

body

object

A VNF scale object, which contains policy and type.

policy

body

string

Scaling policy defined in VNFD template. For more information, see VNFD scaling.

type

body

string

Scaling type, which is either in or out.

Response Example

{
    "scale": {
        "policy": "SP1",
        "type": "out"
    }
}

Virtualized Infrastructure Managers (VIMs)

Manages Virtualized Infrastructure Managers (VIMs).

The VIM is responsible for controlling and managing Network Function Virtualization Infrastructure (NFVI) which provides VNFs with the resources they need.

POST
/v1.0/vims

Register VIM

Registers a VIM.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vim

body

object

A vim object.

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

type

body

string

The type of VIM. Currently there is only one built-in VIM driver, which is for “openstack” type.

auth_url

body

string

The authentication URL for the Keystone service of the remote OpenStack site.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential can contain user_id (and/or username) and password. It also contains user_domain_name when using identity v3.

vim_project

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

name

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

is_default (Optional)

body

boolean

Indicate whether the VIM is used as default.

Request Example

{
    "vim": {
        "type": "openstack",
        "auth_url": "http://192.168.42.131/identity",
        "auth_cred": {
            "username": "nfv_user",
            "user_domain_name": "Default",
            "password": "password",
            "cert_verify": "True"
        },
        "vim_project": {
            "name": "nfv",
            "project_domain_name": "Default"
        },
        "name": "VIM1",
        "description": "Additional site",
        "is_default": false
    }
}

Response Parameters

Name

In

Type

Description

vim

body

object

A vim object.

status

body

string

Status of the VIM.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VIM was registered. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

vim_project

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

updated_at

body

string

The date and time when the VIM was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

is_default

body

boolean

Indicate whether the VIM is used as default.

auth_url

body

string

The authentication URL for the Keystone service of the remote OpenStack site.

placement_attr

body

object

VIM placement information object that includes regions, which is a list of Region IDs. regions are automatically derived from VIM.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential contains user_id (and/or username), password, project_id, project_name, and auth_url. It also contains user_domain_name and project_domain_name when using identity v3.

type

body

string

The type of VIM. Currently there is only one built-in VIM driver, which is for “openstack” type.

id

body

string

The UUID of the VIM.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vim": {
        "status": "PENDING",
        "description": "Additional site",
        "tenant_id": "a5346a4d3c464b4f8776ee2f4bfb86af",
        "created_at": "2018-06-18 04:13:26.465823",
        "vim_project": {
            "name": "nfv",
            "project_domain_name": "Default"
        },
        "updated_at": null,
        "is_default": false,
        "auth_url": "http://192.168.42.131/identity/v3",
        "placement_attr": {
            "regions": [
                "RegionOne"
            ]
        },
        "auth_cred": {
            "username": "nfv_user",
            "password": "***",
            "project_name": "nfv",
            "cert_verify": "True",
            "user_domain_name": "Default",
            "auth_url": "http://192.168.42.131/identity/v3",
            "project_id": null,
            "key_type": "barbican_key",
            "secret_uuid": "***",
            "project_domain_name": "Default"
        },
        "type": "openstack",
        "id": "28dbc4f0-80e2-4006-b26c-724a1202e82d",
        "name": "VIM1"
    }
}
GET
/v1.0/vims

List VIMs

Lists VIMs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

vims

body

array

A list of vim objects.

status

body

string

Status of the VIM.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VIM was registered. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

vim_project

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

updated_at

body

string

The date and time when the VIM was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

is_default

body

boolean

Indicate whether the VIM is used as default.

auth_url

body

string

The authentication URL for the Keystone service of the remote OpenStack site.

placement_attr

body

object

VIM placement information object that includes regions, which is a list of Region IDs. regions are automatically derived from VIM.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential contains user_id (and/or username), password, project_id, project_name, and auth_url. It also contains user_domain_name and project_domain_name when using identity v3.

type

body

string

The type of VIM. Currently there is only one built-in VIM driver, which is for “openstack” type.

id

body

string

The UUID of the VIM.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vims": [
        {
            "status": "REACHABLE",
            "description": "",
            "tenant_id": "a5346a4d3c464b4f8776ee2f4bfb86af",
            "created_at": "2018-06-17 16:26:52",
            "vim_project": {
                "name": "nfv",
                "project_domain_name": "Default"
            },
            "updated_at": "2018-06-18 03:45:49",
            "is_default": true,
            "auth_url": "http://192.168.42.131/identity/v3",
            "placement_attr": {
                "regions": [
                    "RegionOne"
                ]
            },
            "auth_cred": {
                "username": "nfv_user",
                "password": "***",
                "project_name": "nfv",
                "cert_verify": "True",
                "user_domain_name": "Default",
                "auth_url": "http://192.168.42.131/identity/v3",
                "project_id": null,
                "key_type": "barbican_key",
                "secret_uuid": "***",
                "project_domain_name": "Default"
            },
            "type": "openstack",
            "id": "cb7ac02e-1445-48c2-a3cb-4fcddd49fce5",
            "name": "VIM0"
        }
    ]
}
GET
/v1.0/vims/{vim_id}

Show VIM

Shows information of a given VIM.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vim_id

path

string

The UUID of the VIM.

Response Parameters

Name

In

Type

Description

vim

body

object

A vim object.

status

body

string

Status of the VIM.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VIM was registered. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

vim_project

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

updated_at

body

string

The date and time when the VIM was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

is_default

body

boolean

Indicate whether the VIM is used as default.

auth_url

body

string

The authentication URL for the Keystone service of the remote OpenStack site.

placement_attr

body

object

VIM placement information object that includes regions, which is a list of Region IDs. regions are automatically derived from VIM.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential contains user_id (and/or username), password, project_id, project_name, and auth_url. It also contains user_domain_name and project_domain_name when using identity v3.

type

body

string

The type of VIM. Currently there is only one built-in VIM driver, which is for “openstack” type.

id

body

string

The UUID of the VIM.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vim": {
        "status": "REACHABLE",
        "description": "",
        "tenant_id": "a5346a4d3c464b4f8776ee2f4bfb86af",
        "created_at": "2018-06-17 16:26:52",
        "vim_project": {
            "name": "nfv",
            "project_domain_name": "Default"
        },
        "updated_at": "2018-06-18 03:45:49",
        "is_default": false,
        "auth_url": "http://192.168.42.131/identity/v3",
        "placement_attr": {
            "regions": [
                "RegionOne"
            ]
        },
        "auth_cred": {
            "username": "nfv_user",
            "password": "***",
            "project_id": null,
            "project_name": "nfv",
            "cert_verify": "True",
            "user_domain_name": "Default",
            "key_type": "barbican_key",
            "secret_uuid": "***",
            "auth_url": "http://192.168.42.131/identity/v3",
            "project_domain_name": "Default"
        },
        "type": "openstack",
        "id": "cb7ac02e-1445-48c2-a3cb-4fcddd49fce5",
        "name": "VIM0"
    }
}
PUT
/v1.0/vims/{vim_id}

Update VIM

Updates a given VIM. Only a VIM without any associated VNFs can be updated.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vim_id

path

string

The UUID of the VIM.

vim

body

object

A vim object.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential can contain user_id (and/or username) and password. It also contains user_domain_name when using identity v3.

vim_project (Optional)

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

name (Optional)

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

is_default (Optional)

body

boolean

Indicate whether the VIM is used as default.

Request Example

{
    "vim": {
        "auth_cred": {
            "username": "new_nfv_user",
            "user_domain_name": "NewDomain",
            "password": "newpassword",
            "cert_verify": "True"
        },
        "vim_project": {
            "name": "new_nfv",
            "project_domain_name": "NewDomain"
        },
        "name": "new_VIM1",
        "description": "New Description"
    }
}

Response Parameters

Name

In

Type

Description

vim

body

object

A vim object.

status

body

string

Status of the VIM.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the VIM was registered. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

vim_project

body

object

A VIM’s project information object for the remote OpenStack site. Project information can contain id or name. It also contains project_domain_name when using identity v3.

updated_at

body

string

The date and time when the VIM was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

is_default

body

boolean

Indicate whether the VIM is used as default.

auth_url

body

string

The authentication URL for the Keystone service of the remote OpenStack site.

placement_attr

body

object

VIM placement information object that includes regions, which is a list of Region IDs. regions are automatically derived from VIM.

auth_cred

body

object

An authentication credential object for the remote OpenStack site. Credential contains user_id (and/or username), password, project_id, project_name, and auth_url. It also contains user_domain_name and project_domain_name when using identity v3.

type

body

string

The type of VIM. Currently there is only one built-in VIM driver, which is for “openstack” type.

id

body

string

The UUID of the VIM.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vim": {
        "status": "REACHABLE",
        "description": "New Description",
        "tenant_id": "a5346a4d3c464b4f8776ee2f4bfb86af",
        "created_at": "2018-06-18 04:13:26",
        "vim_project": {
            "project_domain_name": "NewDomain",
            "name": "new_nfv"
        }
        "updated_at": "2018-06-18 04:33:41.462895",
        "is_default": false,
        "auth_url": "http://192.168.42.131/identity/v3",
        "placement_attr": {
            "regions": [
                "RegionOne"
            ]
        },
        "auth_cred": {
            "username": "new_nfv_user",
            "password": "***",
            "project_id": null,
            "project_name": "new_nfv",
            "user_domain_name": "NewDomain",
            "auth_url": "http://192.168.42.131/identity/v3",
            "project_domain_name": "NewDomain",
            "cert_verify": "True",
            "key_type": "barbican_key",
            "secret_uuid": "***"
        },
        "type": "openstack",
        "id": "28dbc4f0-80e2-4006-b26c-724a1202e82d",
        "name": "new_VIM1"
    }
}
DELETE
/v1.0/vims/{vim_id}

Delete VIM

Deletes a given VIM. Only a VIM without any associated VNFs can be deleted.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vim_id

path

string

The UUID of the VIM.

Events

Lists and shows captured events.

Tacker currently supports events for following resource types:

  • VNFD

  • VNF

  • VIM

GET
/v1.0/events

List events

Lists events of resources.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

events

body

array

A list of event objects.

resource_id

body

string

The UUID of the resource that is related to the event.

timestamp

body

string

The date and time when the event was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

event_details

body

string

The detailed information for the event, if any.

resource_state

body

string

The state of the resource that is related to the event.

id

body

integer

The ID of the event.

resource_type

body

string

The type of the resource that is related to the event.

Response Example

{
    "events": [
        {
            "event_type": "CREATE",
            "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
            "timestamp": "2016-09-23 09:57:35",
            "event_details": "",
            "resource_state": "PENDING",
            "id": 1,
            "resource_type": "vim"
        },
        {
            "event_type": "MONITOR",
            "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
            "timestamp": "2016-09-23 09:57:35",
            "event_details": "",
            "resource_state": "REACHABLE",
            "id": 2,
            "resource_type": "vim"
        },
        {
            "event_type": "CREATE",
            "resource_id": "31ea84d0-ce43-44d9-9e16-fc38e9636892",
            "timestamp": "2016-09-28 05:41:12",
            "event_details": "",
            "resource_state": "Not Applicable",
            "id": 3,
            "resource_type": "vnfd"
        }
    ]
}
GET
/v1.0/events/{event_id}

Show event

Shows information of a given event.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

event_id

path

string

The ID of the event.

Response Parameters

Name

In

Type

Description

event

body

object

An event object.

resource_id

body

string

The UUID of the resource that is related to the event.

timestamp

body

string

The date and time when the event was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

event_details

body

string

The detailed information for the event, if any.

resource_state

body

string

The state of the resource that is related to the event.

id

body

integer

The ID of the event.

resource_type

body

string

The type of the resource that is related to the event.

Response Example

{
    "event": {
        "event_type": "MONITOR",
        "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2",
        "timestamp": "2016-09-23 09:57:35",
        "event_details": "",
        "resource_state": "REACHABLE",
        "id": 2,
        "resource_type": "vim"
    }
}

VNF Forwarding Graph Descriptors (VNFFGDs)

Manages VNF Forwarding Graph Descriptors (VNFFGDs).

The VNFFGD is a template which describes information about deployment and behavior of VNF Forwarding Graphs (VNFFGs). For more information, see VNFFG Descriptor Template Guide.

POST
/v1.0/vnffgds

Create VNFFGD

Creates a VNFFGD.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

name

body

string

Human-readable name for the resource.

template

body

object

A template object which includes behavioral and deployment information of VNFFGs. For more information, see VNFFG Descriptor Template Guide.

description (Optional)

body

string

Human-readable description for the resource.

Request Example

{
    "vnffgd": {
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "name": "vnffgd1",
        "template": {
            "vnffgd": {
                "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0",
                "description": "Sample VNFFG template",
                "topology_template": {
                    "node_templates": {
                        "Forwarding_path1": {
                            "type": "tosca.nodes.nfv.FP.Tacker",
                            "description": "creates path (CP12->CP22)",
                            "properties": {
                                "policy": {
                                    "type": "ACL",
                                    "criteria": [
                                        {
                                            "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958"
                                        },
                                        {
                                            "destination_port_range": "80-1024"
                                        },
                                        {
                                            "ip_proto": 6
                                        },
                                        {
                                            "ip_dst_prefix": "10.10.0.10/24"
                                        }
                                    ]
                                },
                                "path": [
                                    {
                                        "capability": "CP12",
                                        "forwarder": "VNFD1"
                                    },
                                    {
                                        "capability": "CP22",
                                        "forwarder": "VNFD2"
                                    }
                                ],
                                "id": 51
                            }
                        }
                    },
                    "description": "Sample VNFFG template",
                    "groups": {
                        "VNFFG1": {
                            "type": "tosca.groups.nfv.VNFFG",
                            "description": "HTTP to Corporate Net",
                            "members": [
                                "Forwarding_path1"
                            ],
                            "properties": {
                                "vendor": "tacker",
                                "connection_point": [
                                    "CP12",
                                    "CP22"
                                ],
                                "version": 1.0,
                                "constituent_vnfs": [
                                    "VNFD1",
                                    "VNFD2"
                                ],
                                "number_of_endpoints": 2,
                                "dependent_virtual_link": [
                                    "VL12",
                                    "VL22"
                                ]
                            }
                        }
                    }
                }
            }
        },
        "description": "sample vnffgd"
    }
}

Response Parameters

Name

In

Type

Description

vnffgd

body

object

A vnffgd object.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

name

body

string

Human-readable name for the resource.

template

body

object

A template object which includes behavioral and deployment information of VNFFGs. For more information, see VNFFG Descriptor Template Guide.

description

body

string

Human-readable description for the resource.

Response Example

{
    "vnffgd": {
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "name": "vnffgd1",
        "description": "sample vnffgd",
        "template": {
            "vnffgd": {
                "imports": [
                    "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml",
                    "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml"
                ],
                "description": "Sample VNFFG template",
                "topology_template": {
                    "node_templates": {
                        "Forwarding_path1": {
                            "type": "tosca.nodes.nfv.FP.Tacker",
                            "description": "creates path (CP12->CP22)",
                            "properties": {
                                "policy": {
                                    "type": "ACL",
                                    "criteria": [
                                        {
                                            "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958"
                                        },
                                        {
                                            "destination_port_range": "80-1024"
                                        },
                                        {
                                            "ip_proto": 6
                                        },
                                        {
                                            "ip_dst_prefix": "10.10.0.10/24"
                                        }
                                    ]
                                },
                                "path": [
                                    {
                                        "capability": "CP12",
                                        "forwarder": "VNFD1"
                                    },
                                    {
                                        "capability": "CP22",
                                        "forwarder": "VNFD2"
                                    }
                                ],
                                "id": 51
                            }
                        }
                    },
                    "description": "Sample VNFFG template",
                    "groups": {
                        "VNFFG1": {
                            "type": "tosca.groups.nfv.VNFFG",
                            "description": "HTTP to Corporate Net",
                            "members": [
                                "Forwarding_path1"
                            ],
                            "properties": {
                                "vendor": "tacker",
                                "connection_point": [
                                    "CP12",
                                    "CP22"
                                ],
                                "version": 1.0,
                                "constituent_vnfs": [
                                    "VNFD1",
                                    "VNFD2"
                                ],
                                "number_of_endpoints": 2,
                                "dependent_virtual_link": [
                                    "VL12",
                                    "VL22"
                                ]
                            }
                        }
                    }
                },
                "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0"
            }
        },
        "id": "60b8e717-11a7-4395-8438-a21d2eeeb855"
    }
}
GET
/v1.0/vnffgds

List VNFFGDs

Lists VNFFGDs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

vnffgds

body

array

A list of vnffgd objects.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

id

body

string

The UUID of the VNFFGD.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnffgds": [
        {
            "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
            "name": "vnffgd1",
            "description": "sample vnffgd",
            "template": {
                "vnffgd": {
                    "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0",
                    "imports": [
                        "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml",
                        "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml"
                    ],
                    "description": "Sample VNFFG template",
                    "topology_template": {
                        "node_templates": {
                            "Forwarding_path1": {
                                "type": "tosca.nodes.nfv.FP.Tacker",
                                "description": "creates path (CP12->CP22)",
                                "properties": {
                                    "policy": {
                                        "type": "ACL",
                                        "criteria": [
                                            {
                                                "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958"
                                            },
                                            {
                                                "destination_port_range": "80-1024"
                                            },
                                            {
                                                "ip_proto": 6
                                            },
                                            {
                                                "ip_dst_prefix": "10.10.0.10/24"
                                            }
                                        ]
                                    },
                                    "path": [
                                        {
                                            "capability": "CP12",
                                            "forwarder": "VNFD1"
                                        },
                                        {
                                            "capability": "CP22",
                                            "forwarder": "VNFD2"
                                        }
                                    ],
                                    "id": 51
                                }
                            }
                        },
                        "description": "Sample VNFFG template",
                        "groups": {
                            "VNFFG1": {
                                "type": "tosca.groups.nfv.VNFFG",
                                "description": "HTTP to Corporate Net",
                                "members": [
                                    "Forwarding_path1"
                                ],
                                "properties": {
                                    "vendor": "tacker",
                                    "connection_point": [
                                        "CP12",
                                        "CP22"
                                    ],
                                    "version": 1.0,
                                    "constituent_vnfs": [
                                        "VNFD1",
                                        "VNFD2"
                                    ],
                                    "number_of_endpoints": 2,
                                    "dependent_virtual_link": [
                                        "VL12",
                                        "VL22"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "id": "60b8e717-11a7-4395-8438-a21d2eeeb855"
        }
    ]
}
GET
/v1.0/vnffgds/{vnffgd_id}

Show VNFFGD

Shows information of a given VNFFGD.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnffgd_id

path

string

The UUID of the VNFFGD.

Response Parameters

Name

In

Type

Description

vnffgd

body

object

A vnffgd object.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

id

body

string

The UUID of the VNFFGD.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnffgd": {
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "name": "vnffgd1",
        "description": "sample vnffgd",
        "template": {
            "vnffgd": {
                "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0",
                "imports": [
                    "/opt/stack/tacker/tacker/tosca/lib/tacker_defs.yaml",
                    "/opt/stack/tacker/tacker/tosca/lib/tacker_nfv_defs.yaml"
                ],
                "description": "Sample VNFFG template",
                "topology_template": {
                    "node_templates": {
                        "Forwarding_path1": {
                            "type": "tosca.nodes.nfv.FP.Tacker",
                            "description": "creates path (CP12->CP22)",
                            "properties": {
                                "policy": {
                                    "type": "ACL",
                                    "criteria": [
                                        {
                                            "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958"
                                        },
                                        {
                                            "destination_port_range": "80-1024"
                                        },
                                        {
                                            "ip_proto": 6
                                        },
                                        {
                                            "ip_dst_prefix": "10.10.0.10/24"
                                        }
                                    ]
                                },
                                "path": [
                                    {
                                        "capability": "CP12",
                                        "forwarder": "VNFD1"
                                    },
                                    {
                                        "capability": "CP22",
                                        "forwarder": "VNFD2"
                                    }
                                ],
                                "id": 51
                            }
                        }
                    },
                    "description": "Sample VNFFG template",
                    "groups": {
                        "VNFFG1": {
                            "type": "tosca.groups.nfv.VNFFG",
                            "description": "HTTP to Corporate Net",
                            "members": [
                                "Forwarding_path1"
                            ],
                            "properties": {
                                "vendor": "tacker",
                                "connection_point": [
                                    "CP12",
                                    "CP22"
                                ],
                                "version": 1.0,
                                "constituent_vnfs": [
                                    "VNFD1",
                                    "VNFD2"
                                ],
                                "number_of_endpoints": 2,
                                "dependent_virtual_link": [
                                    "VL12",
                                    "VL22"
                                ]
                            }
                        }
                    }
                }
            }
        },
        "id": "60b8e717-11a7-4395-8438-a21d2eeeb855"
    }
}
DELETE
/v1.0/vnffgds/{vnffgd_id}

Delete VNFFGD

Deletes a given VNFFGD. Only a VNFFGD without any associated VNFFGs can be deleted.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnffgd_id

path

string

The UUID of the VNFFGD.

VNF Forwarding Graphs (VNFFGs)

Manages VNF Forwarding Graphs (VNFFGs).

The VNFFG feature is used to orchestrate and manage traffic through VNFs. For more information about VNFFG, see VNF Forwarding Graph.

POST
/v1.0/vnffgs

Create VNFFG

Creates a VNFFG.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

vnffgd_id

body

string

The UUID of the VNFFGD.

name

body

string

Human-readable name for the resource.

vnf_mapping (Optional)

body

object

A vnf_mapping object which contains mappings from VNFD name to VNF instance ID. This is used to declare which exact VNF instance to be used for each VNFD in the Forwarding Path definition. If no vnf mappings are provided, then Tacker attempts to search for VNF instance derived from each VNFDs.

symmetrical (Optional)

body

boolean

Indicate whether reverse traffic should also flow through the path. Enabling symmetrical is not currently supported by the OpenStack VIM driver.

Request Example

{
    "vnffg": {
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926",
        "name": "vnffg1",
        "vnf_mapping": {
            "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443",
            "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac"
        },
        "symmetrical": false
    }
}

Response Parameters

Name

In

Type

Description

vnffg

body

object

A vnffg object.

forwarding_paths

body

string

The UUID of the Network Forwarding Path (NFP) on which the VNFFG relies.

status

body

string

Status of the VNFFG.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

vnffgd_id

body

string

The UUID of the VNFFGD.

vnf_mapping

body

object

A vnf_mapping object which contains mappings from VNFD name to VNF instance ID.

id

body

string

The UUID of the VNFFG.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnffg": {
        "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a",
        "status": "PENDING_CREATE",
        "description": "sample vnffgd",
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926",
        "vnf_mapping": {
            "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443",
            "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac"
        },
        "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe",
        "name": "vnffg1"
    }
}
GET
/v1.0/vnffgs

List VNFFGs

Lists VNFFGs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

vnffgs

body

array

A list of vnffg objects.

forwarding_paths

body

string

The UUID of the Network Forwarding Path (NFP) on which the VNFFG relies.

status

body

string

Status of the VNFFG.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

vnffgd_id

body

string

The UUID of the VNFFGD.

vnf_mapping

body

object

A vnf_mapping object which contains mappings from VNFD name to VNF instance ID.

id

body

string

The UUID of the VNFFG.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnffgs": [
        {
            "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a",
            "status": "ACTIVE",
            "description": "sample vnffgd",
            "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
            "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926",
            "vnf_mapping": {
                "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443",
                "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac"
            },
            "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe",
            "name": "vnffg1"
        }
    ]
}
GET
/v1.0/vnffgs/{vnffg_id}

Show VNFFG

Shows information of a given VNFFG.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnffg_id

path

string

The UUID of the VNFFG.

Response Parameters

Name

In

Type

Description

vnffg

body

object

A vnffg object.

forwarding_paths

body

string

The UUID of the Network Forwarding Path (NFP) on which the VNFFG relies.

status

body

string

Status of the VNFFG.

description

body

string

Human-readable description for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

vnffgd_id

body

string

The UUID of the VNFFGD.

vnf_mapping

body

object

A vnf_mapping object which contains mappings from VNFD name to VNF instance ID.

id

body

string

The UUID of the VNFFG.

name

body

string

Human-readable name for the resource.

Response Example

{
    "vnffg": {
        "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a",
        "status": "ACTIVE",
        "description": "sample vnffgd",
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926",
        "vnf_mapping": {
            "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443",
            "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac"
        },
        "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe",
        "name": "vnffg1"
    }
}
DELETE
/v1.0/vnffgs/{vnffg_id}

Delete VNFFG

Deletes a given VNFFG.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

vnffg_id

path

string

The UUID of the VNFFG.

Network Forwarding Paths (NFPs)

Lists Network Forwarding Paths (NFPs) and shows information of a given NFP.

The NFP is a component of VNFFG and contains a Service Function Chain (SFC) and a classifier.

GET
/v1.0/nfps

List NFPs

Lists NFPs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

nfps

body

array

A list of nfp objects.

status

body

string

Status of the NFP.

name

body

string

Human-readable name for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

chain_id

body

string

The UUID of the Service Function Chain (SFC).

path_id

body

string

The ID of the path. It will be used in future implementations of Network Service Header (NSH) to identify paths via the Service Path Identifier (SPI) attribute.

symmetrical

body

boolean

Indicate whether reverse traffic should also flow through the path. Enabling symmetrical is not currently supported by the OpenStack VIM driver.

classifier_id

body

string

The UUID of the Classifier.

id

body

string

The UUID of the Network Forwarding Path (NFP).

Response Example

{
    "nfps": [
        {
            "status": "ACTIVE",
            "name": "Forwarding_path1",
            "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
            "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2",
            "path_id": "51",
            "symmetrical": false,
            "classifier_id": "b742746d-b09e-4da7-8535-9fc066a71cf1",
            "id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015"
        }
    ]
}
GET
/v1.0/nfps/{nfp_id}

Show NFP

Shows information of a given NFP.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

nfp_id

path

string

The UUID of the NFP.

Response Parameters

Name

In

Type

Description

nfp

body

object

A nfp object.

status

body

string

Status of the NFP.

name

body

string

Human-readable name for the resource.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

chain_id

body

string

The UUID of the Service Function Chain (SFC).

path_id

body

string

The ID of the path. It will be used in future implementations of Network Service Header (NSH) to identify paths via the Service Path Identifier (SPI) attribute.

symmetrical

body

boolean

Indicate whether reverse traffic should also flow through the path. Enabling symmetrical is not currently supported by the OpenStack VIM driver.

classifier_id

body

string

The UUID of the Classifier.

id

body

string

The UUID of the Network Forwarding Path (NFP).

Response Example

{
    "nfp": {
        "status": "ACTIVE",
        "name": "Forwarding_path1",
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2",
        "path_id": "51",
        "symmetrical": false,
        "classifier_id": "b742746d-b09e-4da7-8535-9fc066a71cf1",
        "id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015"
    }
}

Service Function Chains (SFCs)

Lists Service Function Chains (SFCs) and shows information of a given SFC.

The SFC is a component of a NFP and forms a path which traffics flow through.

GET
/v1.0/sfcs

List SFCs

Lists SFCs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

sfcs

body

array

A list of sfc objects.

status

body

string

Status of the SFC.

path_id

body

string

The ID of the path. It will be used in future implementations of Network Service Header (NSH) to identify paths via the Service Path Identifier (SPI) attribute.

nfp_id

body

string

The UUID of the NFP which the SFC belongs to.

chain

body

array

A ordered list of node objects to traverse. Each node includes a list of CPs and correspondent VNF name. Up to 2 CPs may be listed per node. If 2 CPs are listed, the first will be considered the ingress port for traffic and the second will be the egress. If there’s only one CP, then it will be considered both the ingress and egress port for traffic.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

instance_id

body

string

The UUID information to uniquely identify the SFC instance. A SFC is instantiated as a Neutron Port Chain when using OpenStack VIM Driver.

symmetrical

body

boolean

Indicate whether reverse traffic should also flow through the path. Enabling symmetrical is not currently supported by the OpenStack VIM driver.

id

body

string

The UUID of the Service Function Chain (SFC).

Response Example

{
    "sfcs": [
        {
            "status": "ACTIVE",
            "path_id": "51",
            "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015",
            "chain": [
                {
                    "connection_points": [
                        "e48cd49d-3bf7-4c8d-b6a7-3e2846b01c7c"
                    ],
                    "name": "my-vnf1"
                },
                {
                    "connection_points": [
                        "4b0b3a8f-07ca-46c3-b8fa-90caeaada031"
                    ],
                    "name": "my-vnf2"
                }
            ],
            "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
            "instance_id": "2645eea6-3744-40f6-aacc-09a784db5d89",
            "symmetrical": false,
            "id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2"
        }
    ]
}
GET
/v1.0/sfcs/{sfc_id}

Show SFC

Shows information of a given SFC.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

sfc_id

path

string

The UUID of the SFC.

Response Parameters

Name

In

Type

Description

sfc

body

object

A sfc object.

status

body

string

Status of the SFC.

path_id

body

string

The ID of the path. It will be used in future implementations of Network Service Header (NSH) to identify paths via the Service Path Identifier (SPI) attribute.

nfp_id

body

string

The UUID of the NFP which the SFC belongs to.

chain

body

array

A ordered list of node objects to traverse. Each node includes a list of CPs and correspondent VNF name. Up to 2 CPs may be listed per node. If 2 CPs are listed, the first will be considered the ingress port for traffic and the second will be the egress. If there’s only one CP, then it will be considered both the ingress and egress port for traffic.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

instance_id

body

string

The UUID information to uniquely identify the SFC instance. A SFC is instantiated as a Neutron Port Chain when using OpenStack VIM Driver.

symmetrical

body

boolean

Indicate whether reverse traffic should also flow through the path. Enabling symmetrical is not currently supported by the OpenStack VIM driver.

id

body

string

The UUID of the Service Function Chain (SFC).

Response Example

{
    "sfc": {
        "status": "ACTIVE",
        "path_id": "51",
        "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015",
        "chain": [
            {
                "connection_points": [
                    "e48cd49d-3bf7-4c8d-b6a7-3e2846b01c7c"
                ],
                "name": "my-vnf1"
            },
            {
                "connection_points": [
                    "4b0b3a8f-07ca-46c3-b8fa-90caeaada031"
                ],
                "name": "my-vnf2"
            }
        ],
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "instance_id": "2645eea6-3744-40f6-aacc-09a784db5d89",
        "symmetrical": false,
        "id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2"
    }
}

Classifiers

Lists classifiers and shows information of a given classifier.

The classifier is a component of a NFP and defines policies to distinguish which traffic should enter the related SFC.

GET
/v1.0/classifiers

List classifiers

Lists classifiers.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

classifiers

body

array

A list of classifier objects.

status

body

string

Status of the classifier.

nfp_id

body

string

The UUID of the NFP which the classifier belongs to.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

chain_id

body

string

The UUID of the SFC which the classifier is related to.

instance_id

body

string

The UUID information to uniquely identify the classifier instance. A classifier is instantiated as a Neutron Flow Classifier when using OpenStack VIM Driver.

id

body

string

The UUID of the Classifier.

match

body

object

A match policy object that will be used to distinguish which traffic should enter the related SFC.

Response Example

{
    "classifiers": [
        {
            "status": "ACTIVE",
            "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015",
            "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
            "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2",
            "instance_id": "5a5e2cd6-c0d9-4768-8361-99ac9e2c8fae",
            "id": "b742746d-b09e-4da7-8535-9fc066a71cf1",
            "match": {
                "ip_proto": 6,
                "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958",
                "ip_dst_prefix": "10.10.0.10/24",
                "destination_port_min": 80,
                "destination_port_max": 1024
            }
        }
    ]
}
GET
/v1.0/classifiers/{sfc_id}

Show classifier

Shows information of a given classifier.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

sfc_id

path

string

The UUID of the SFC.

Response Parameters

Name

In

Type

Description

classifiers

body

array

A list of classifier objects.

status

body

string

Status of the classifier.

nfp_id

body

string

The UUID of the NFP which the classifier belongs to.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

chain_id

body

string

The UUID of the SFC which the classifier is related to.

instance_id

body

string

The UUID information to uniquely identify the classifier instance. A classifier is instantiated as a Neutron Flow Classifier when using OpenStack VIM Driver.

id

body

string

The UUID of the Classifier.

match

body

object

A match policy object that will be used to distinguish which traffic should enter the related SFC.

Response Example

{
    "classifier": {
        "status": "ACTIVE",
        "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015",
        "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1",
        "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2",
        "instance_id": "5a5e2cd6-c0d9-4768-8361-99ac9e2c8fae",
        "id": "b742746d-b09e-4da7-8535-9fc066a71cf1",
        "match": {
            "ip_proto": 6,
            "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958",
            "ip_dst_prefix": "10.10.0.10/24",
            "destination_port_min": 80,
            "destination_port_max": 1024
        }
    }
}

Network Service Descriptors (NSD)

Manages Network Service Descriptors.

NSD is a TOSCA template that describes the deployment and behaviour of a Network Service (NS) using a collection of VNFs. For more information, see NSD Usage Guide.

POST
/v1.0/nsds

Create NSD

Creates a NSD.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

name

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

attributes

body

object

Attributes necessary for spinning up NS.

Request Example

{
  "nsd": {
    "tenant_id": "689708956b2d4ae0a27120d3aca6a593",
    "name": "sample-nsd",
    "description": "Sample nsd", 
    "attributes": {
      "nsd": {
        "imports": [
          "vnf1",
          "vnf2"
        ],
        "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0",
        "topology_template": {
          "inputs": {
            "vl2_name": {
              "default": "net0", "type": "string",
              "description": "name of VL2 virtuallink"
            },
            "vl1_name": {
              "default": "net_mgmt",
              "type": "string",
              "description": "name of VL1 virtuallink"
            }
          },
          "node_templates": {
            "VL1": {
              "type": "tosca.nodes.nfv.VL",
              "properties": {
                "network_name": {
                  "get_input": "vl1_name"
                },
                "vendor": "tacker"
              }
            },
            "VNF1": {
              "type": "tosca.nodes.nfv.VNF1",
              "requirements": [
                {
                  "virtualLink1": "VL1"
                },
                {
                  "virtualLink2": "VL2"
                }
              ]
            },
            "VL2": {
              "type": "tosca.nodes.nfv.VL",
              "properties": {
                "network_name": {
                  "get_input": "vl2_name"
                },
                "vendor": "tacker"
              }
            }
          }
        }
      }
    },
  }
}

Response Parameters

Name

In

Type

Description

nsd

body

object

A nsd object.

name

body

string

Human-readable name for the resource.

id

body

string

The UUID of the NSD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

description

body

string

Human-readable description for the resource.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up NS.

Response Example

{
  "nsd": {
    "name": "nsd1"
    "description": "nsd-sample",
    "id": "99b2851e-a6a7-4467-9554-0eb50633f012",
    "tenant_id": "a81900a92bda40588c52699e1873a92f",
    "created_at": "2017-01-30 07:10:29.809127",
    "updated_at": null,
    "attributes": {
      "nsd": "imports: [vnf1, vnf2]\ntopology_template:\n  inputs:\n    vl1_name: {default: net_mgmt, description: name of VL1 virtuallink, type: string}\n    vl2_name: {default: net0, description: name of VL2 virtuallink, type: string}\n  node_templates:\n    VL1:\n      properties:\n        network_name: {get_input: vl1_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VL2:\n      properties:\n        network_name: {get_input: vl2_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VNF1:\n      requirements:\n      - {virtualLink1: VL1}\n      - {virtualLink2: VL2}\n      type: tosca.nodes.nfv.VNF1\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
    },
  }
}
GET
/v1.0/nsds

List NSDs

Lists NSDs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

nsds

body

array

A list of nsd objects.

name

body

string

Human-readable name for the resource.

id

body

string

The UUID of the NSD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

description

body

string

Human-readable description for the resource.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up NS.

Response Example

{
  "nsd": [
    {
      "name": "nsd1"
      "description": "nsd-sample",
      "id": "99b2851e-a6a7-4467-9554-0eb50633f012",
      "tenant_id": "a81900a92bda40588c52699e1873a92f",
      "created_at": "2017-01-30 07:10:29.809127",
      "updated_at": null,
      "attributes": {
        "nsd": "imports: [vnf1, vnf2]\ntopology_template:\n  inputs:\n    vl1_name: {default: net_mgmt, description: name of VL1 virtuallink, type: string}\n    vl2_name: {default: net0, description: name of VL2 virtuallink, type: string}\n  node_templates:\n    VL1:\n      properties:\n        network_name: {get_input: vl1_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VL2:\n      properties:\n        network_name: {get_input: vl2_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VNF1:\n      requirements:\n      - {virtualLink1: VL1}\n      - {virtualLink2: VL2}\n      type: tosca.nodes.nfv.VNF1\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
      },
    }
  ]
}
GET
/v1.0/nsds/{nsd_id}

Show NSD

Shows information of a given NSD.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

nsd_id

path

string

The UUID of the VNFD.

Response Parameters

Name

In

Type

Description

nsds

body

array

A list of nsd objects.

name

body

string

Human-readable name for the resource.

id

body

string

The UUID of the NSD.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

description

body

string

Human-readable description for the resource.

created_at

body

string

The date and time when the resource was created. The format is YYYY-MM-DD hh:mm:ss. For example, 2016-09-23 09:57:35.

updated_at

body

string

The date and time when the resource was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

attributes

body

object

Attributes necessary for spinning up NS.

Response Example

{
  "nsd": {
    "name": "nsd_sample"
    "description": "nsd-sample",
    "id": "99b2851e-a6a7-5467-9954-0e8a0633f941",
    "tenant_id": "a81900a92bda40588c52699e1873a92f",
    "created_at": "2017-01-30 07:11:37.807045",
    "updated_at": null,
    "attributes": {
      "nsd": "imports: [vnf1, vnf2]\ntopology_template:\n  inputs:\n    vl1_name: {default: net_mgmt, description: name of VL1 virtuallink, type: string}\n    vl2_name: {default: net0, description: name of VL2 virtuallink, type: string}\n  node_templates:\n    VL1:\n      properties:\n        network_name: {get_input: vl1_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VL2:\n      properties:\n        network_name: {get_input: vl2_name}\n        vendor: tacker\n      type: tosca.nodes.nfv.VL\n    VNF1:\n      requirements:\n      - {virtualLink1: VL1}\n      - {virtualLink2: VL2}\n      type: tosca.nodes.nfv.VNF1\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n"
    },
  }
}
DELETE
/v1.0/nsds/{nsd_id}

Delete NSD

Deletes a given NSD. Only a NSD without any associated NSs can be deleted.

Response Codes

Success

Code

Reason

204 - No Content

The server has fulfilled the request by deleting the resource.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

409 - Conflict

This operation conflicted with another operation on this resource.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

nsd_id

path

string

The UUID of the VNFD.

Network Services (NSs)

Manages Network Servicess (NSs) and their resources.

NS resources are instantiations of network services described in the associated NSD TOSCA template.

POST
/v1.0/nss

Create NS

Creates a NS.

Response Codes

Success

Code

Reason

201 - Created

Resource was created and is ready to use.

Error

Code

Reason

400 - Bad Request

Some content in the request was invalid.

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

ns

body

object

A ns object.

name

body

string

Human-readable name for the resource.

description (Optional)

body

string

Human-readable description for the resource.

nsd_id

body

string

The UUID of the NSD.

vim_id (Optional)

body

string

The UUID of the VIM.

tenant_id (Optional)

body

string

The UUID of the tenant. A tenant is also known as a project.

attributes (Optional)

body

object

NS attributes object. This object can contain param_values.

Request Example

{
  "ns": {
    "name": "ns_test",
    "nsd_id": "2e581b27-aa72-4a81-8efd-6c0e58533c9b"
    "description:": "sample NS",
    "tenant_id": "6673e4d4e13340acb0b847f9ecde613b",
    "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02",
    "attributes": {
      "param_values": {
        "nsd": {
          "vl2_name": "net0",
          "vl1_name": "net_mgmt"
        }
      }
    },
  }
}

Response Parameters

Name

In

Type

Description

ns

body

object

A ns object.

name

body

string

Human-readable name for the resource.

description

body

string

Human-readable description for the resource.

status

body

string

Status of the NS.

id

body

string

The UUID of the NS.

nsd_id

body

string

The UUID of the NSD.

vnf_ids

body

array

A list of vnf_id objects.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the NS was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the NS was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

mgmt_ip_address

body

string

Management ip address for the NS.

vim_id

body

string

The UUID of the VIM.

error_reason

body

string

Reason for NS error, if any.

attributes

body

object

NS attributes object.

Response Example

{
  "ns": {
    "name": "network_service"
    "description": "sample-ns",
    "status": "PENDING_CREATE",
    "created_at": "2017-01-30 20:23:49.566482",
    "tenant_id": "a81900a92bda40588c52699e1873a92f",
    "vim_id": "96025dd5-ca16-49f3-9823-958eb04260c4",
    "updated_at": null,
    "mgmt_ip_addresses": null,
    "vnf_ids": null,
    "error_reason": null,
    "nsd_id": "99b2851e-a6a7-4467-9554-0eb50633f012",
    "id": "076d8bcb-5ad4-4036-a692-fe488d24f77d",
  }
}
GET
/v1.0/nss

List NSs

Lists NSs.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Response Parameters

Name

In

Type

Description

nss

body

array

A list of ns objects.

name

body

string

Human-readable name for the resource.

description

body

string

Human-readable description for the resource.

status

body

string

Status of the NS.

id

body

string

The UUID of the NS.

nsd_id

body

string

The UUID of the NSD.

vnf_ids

body

array

A list of vnf_id objects.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the NS was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the NS was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

mgmt_ip_address

body

string

Management ip address for the NS.

vim_id

body

string

The UUID of the VIM.

error_reason

body

string

Reason for NS error, if any.

attributes

body

object

NS attributes object.

Response Example

{
  "ns": [
    {
      "name": "network_service"
      "description": "sample-ns",
      "status": "PENDING_CREATE",
      "created_at": "2017-01-30 20:23:49.566482",
      "tenant_id": "a81900a92bda40588c52699e1873a92f",
      "vim_id": "96025dd5-ca16-49f3-9823-958eb04260c4",
      "updated_at": null,
      "mgmt_ip_addresses": null,
      "vnf_ids": null,
      "error_reason": null,
      "nsd_id": "99b2851e-a6a7-4467-9554-0eb50633f012",
      "id": "076d8bcb-5ad4-4036-a692-fe488d24f77d",
    }
  ]
}
GET
/v1.0/nss/{ns_id}

Show NS

Shows information of a given NS.

Response Codes

Success

Code

Reason

200 - OK

Request was successful.

Error

Code

Reason

401 - Unauthorized

User must authenticate before making a request.

404 - Not Found

The requested resource could not be found.

500 - Internal Server Error

Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name

In

Type

Description

ns_id

path

string

The UUID of the NS.

Response Parameters

Name

In

Type

Description

ns

body

object

A ns object.

name

body

string

Human-readable name for the resource.

description

body

string

Human-readable description for the resource.

status

body

string

Status of the NS.

id

body

string

The UUID of the NS.

nsd_id

body

string

The UUID of the NSD.

vnf_ids

body

array

A list of vnf_id objects.

tenant_id

body

string

The UUID of the tenant. A tenant is also known as a project.

created_at

body

string

The date and time when the NS was created. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

updated_at

body

string

The date and time when the NS was updated. The format is YYYY-MM-DD hh:mm:ss.ssssss. For example, 2016-09-23 09:59:27.392759.

mgmt_ip_address

body

string

Management ip address for the NS.

vim_id

body

string

The UUID of the VIM.

error_reason

body

string

Reason for NS error, if any.

attributes

body

object

NS attributes object.

Response Example

{
  "ns": {
    "name": "network_service"
    "description": "sample-ns",
    "status": "PENDING_CREATE",
    "created_at": "2017-01-30 20:23:49.566482",
    "tenant_id": "a81900a92bda40588c52699e1873a92f",
    "vim_id": "96025dd5-ca16-49f3-9823-958eb04260c4",
    "updated_at": null,
    "mgmt_ip_addresses": null,
    "vnf_ids": null,
    "error_reason": null,
    "nsd_id": "99b2851e-a6a7-4467-9554-0eb50633f012",
    "id": "076d8bcb-5ad4-4036-a692-fe488d24f77d",
  }
}