******************* Tacker API Overview ******************* Tacker API provides REST API end-points based on `ETSI NFV MANO standards`_. The two new resources introduced are 'vnfd' and 'vnf' for describing the 'vnfm' extension. The resources request and response formats are described in below sections. .. _ETSI NFV MANO standards: http://www.etsi.org/deliver/etsi_gs/NFV-MAN/001_099/001/01.01.01_60/gs_nfv-man001v010101p.pdf API versions ============ Lists information for Tacker API version. **GET /** List API versions - Lists information about Tacker API version. :: Response: { "versions": [ { "status": "CURRENT", "id": "v1.0", "links": [ { "href": "http://10.18.160.13:9890/v1.0", "rel": "self" } ] } ] } Vnfds ===== **GET /v1.0/vnfds** List vnfds - List vnfds stored in the VNF catalog. :: Response: { "vnfds": [ { "service_types": [ { "service_type": "vnfd", "id": "378b774d-89f5-4634-9c65-9c49ed6f00ce" } ], "description": "OpenWRT with services", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "mgmt_driver": "openwrt", "infra_driver": "", "attributes": { "vnfd": "template_name: OpenWRT\r\ndescription: template_description " }, "id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c", "name": "openwrt_services" } ] } **GET /v1.0/vnfds/{vnfd_id}** Show vnfd - Show information for a specified vnfd id. :: Response: { "vnfd": { "service_types": [ { "service_type": "vnfd", "id": "378b774d-89f5-4634-9c65-9c49ed6f00ce" } ], "description": "OpenWRT with services", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "mgmt_driver": "openwrt", "infra_driver": "", "attributes": { "vnfd": "template_name: OpenWRT\r\ndescription: template_description " }, "id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c", "name": "openwrt_services" } } **POST /v1.0/vnfds** Create vnfd - Create a vnfd entry based on the vnfd template. :: Request: { "auth": { "tenantName": "admin", "passwordCredentials": { "username": "admin", "password": "devstack" } }, "vnfd": { "service_types": [{"service_type": "vnfd"}], "tenant_id": "bb6a3be1021a4746ab727a6c9296e797", "description": "OpenWRT router", "attributes": { "vnfd": "template_name: sample-vnfd\ndescription: demo-example\n\nservice_properties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n vdu1:\n id: vdu1\n vm_image: cirros-0.3.4-x86_64-uec\n instance_type: m1.tiny\n\n network_interfaces:\n management:\n network: net_mgmt\n management: true\n pkt_in:\n network: net0\n pkt_out:\n network: net1\n\n placement_policy:\n availability_zone: nova\n\n auto-scaling: noop\n\n config:\n param0: key0\n param1: key1\n" }, "name": "OpenWRT" } } :: Response: { "vnfd": { "service_types": [ { "service_type": "vnfd", "id": "336fe422-9fba-47c7-87fb-d48475c3e0ce" } ], "description": "OpenWRT router", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "mgmt_driver": "noop", "infra_driver": "", "attributes": { "vnfd": "template_name: OpenWRT \r\ndescription: template_description " }, "id": "ab10a543-22ee-43af-a441-05a9d32a57da", "name": "OpenWRT" } } **DELETE /v1.0/vnfds/{vnfd_id}** Delete vnfd - Deletes a specified vnfd_id from the VNF catalog. This operation does not accept a request body and does not return a response body. Vnfs ==== **GET /v1.0/vnfs** List vnfs - Lists instantiated vnfs in VNF Manager. :: Response: { "vnfs": [ { "status": "ACTIVE", "name": "open_wrt", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "instance_id": "f7c93726-fb8d-4036-8349-2e82f196e8f6", "mgmt_url": "{\"vdu1\": \"192.168.120.3\"}", "attributes": { "service_type": "firewall", "param_values": "", "heat_template": "description: sample_template_description type: OS::Nova::Server\n", "monitoring_policy": "noop", "failure_policy": "noop" }, "id": "c9b4f5a5-d304-473a-a57e-b665b1f9eb8f", "description": "OpenWRT with services" } ] } **GET /v1.0/vnfs/{vnf_id}** Show vnf - Show information for a specified vnf_id. :: Response: { "vnf": [ { "status": "ACTIVE", "name": "open_wrt", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "instance_id": "f7c93726-fb8d-4036-8349-2e82f196e8f6", "mgmt_url": "{\"vdu1\": \"192.168.120.3\"}", "attributes": { "service_type": "firewall", "param_values": "", "heat_template": "description: OpenWRT with services\n sample_template_description type: OS::Nova::Server\n", "monitoring_policy": "noop", "failure_policy": "noop" }, "id": "c9b4f5a5-d304-473a-a57e-b665b1f9eb8f", "description": "OpenWRT with services" } ] } **POST /v1.0/vnfs** Create vnf - Create a vnf based on the vnfd template id. :: Request: { "auth": { "tenantName": "admin", "passwordCredentials": { "username": "admin", "password": "devstack" } }, "vnf": { "attributes": {}, "vim_id": "", "description": "demo-example", "vnfd_id": "ad0c2c7c-825e-43c5-a402-b5710902b408", "name": "demo-vnf" } } :: Response: { "vnf": { "status": "PENDING_CREATE", "description": "demo-example", "tenant_id": "bb6a3be1021a4746ab727a6c9296e797", "vim_id": "c91413b9-eaf9-47f7-86b6-3f3a3e29261e", "name": "demo-vnf", "instance_id": "050f4d0e-ff7c-4a5d-9dba-dbe238b3348b", "mgmt_url": null, "placement_attr": { "vim_name": "VIM0" }, "error_reason": null, "attributes": { "service_type": "firewall", "heat_template": "description: OpenWRT with services\n type: OS::Nova::Server\n", "monitoring_policy": "noop", "failure_policy": "noop" }, "id": "e3158513-92f4-4587-b949-70ad0bcbb2dd", "vnfd_id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c" } } **PUT /v1.0/vnfs/{vnf_id}** Update vnf - Update a vnf based on user config file or data. :: Request: { "auth": { "tenantName": "admin", "passwordCredentials": { "username": "admin", "password": "devstack" } }, "vnf": { "attributes": { "config": "vdus:\n vdu1: \n\n" } } } :: Response: { "vnf": { "status": "PENDING_UPDATE", "name": "", "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0", "instance_id": "4f0d6222-afa0-4f02-8e19-69e7e4fd7edc", "mgmt_url": "{\"vdu1\": \"192.168.120.4\"}", "attributes": { "service_type": "firewall", "monitoring_policy": "noop", "config": "vdus:\n vdu1:\n config: { type: OS::Nova::Server\n", "failure_policy": "noop" }, "id": "e3158513-92f4-4587-b949-70ad0bcbb2dd", "description": "OpenWRT with services" } } **DELETE /v1.0/vnfs/{vnf_id}** Delete vnf - Deletes a specified vnf_id from the VNF list.