@startuml

frame "python-tackerclient" {
	component "tacker-client" as client {
	package "VNF Package" as vnfpkg {
		file "VNFD" as vnfd
	}
	file "Instantiate\nparameters" as inst_param 
}
}

frame "tacker" {
	component "tacker-server" {
		component "server" as serv
	}
	component "tacker-conductor" {
		component "conductor" as cond
		component "OpenStack\ninfra-driver" as infra
	}
}

node "OpenStack\nHeat" as heat
cloud "Hardware Resources" as hw {
	node "VM" as ins1
}

'# Relationships
vnfpkg --> serv: 1. Request\n create VNF
inst_param --> serv: 2. Request\n instantiate VNF
serv --> cond
cond --> infra
infra -right-> heat: 3. Call OpenStack\n Heat API
heat --> ins1: 4. Create a VM

@enduml
