{"type":"api","title":"Update Deployment","meta":{"id":"/apps/pubhub/media/nfvis-api/e3678dda6abe6c2a26c7698d553a4574e3f45071/262737b2-b3c2-32cd-b07b-fdbdcd23918f","info":{"title":"NFVIS API","description":"NFVIS RESTCONF API Documentation","version":"4.14.1"},"x-parser-conf":{"overview":{"markdownPath":"reference/overview.md"}},"swagger":"2.0","basePath":"/{nfvis_ip}/restconf","schemes":["https"],"securityDefinitions":{"basicAuth":{"type":"basic"}}},"spec":{"tags":["VM Lifecycle Management - Deployment"],"summary":"Update Deployment","description":"Update the existing deployment. tenant-name is admin.","operationId":"data_vmlc_vm_lifecycle_tenants_tenant_tenant_name_deployments_deployment_deployment_name_put","produces":["application/yang-data+json"],"parameters":[{"name":"tenant-name","in":"path","description":"","required":true,"type":"string","format":"string","$$ref":"#/parameters/tenant-name"},{"name":"deployment-name","in":"path","description":"User specified name. One can have multiple deployments with a unique name for each\ndeployment","required":true,"type":"string","format":"string","$$ref":"#/parameters/deployment-name"},{"name":"deployment","in":"body","description":"List of deployments requested by the user","required":true,"schema":{"type":"object","properties":{"vmlc:deployment":{"type":"array","description":"List of deployments requested by the user (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"User specified name. One can have multiple deployments with a unique name for each\ndeployment (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"resource_group":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"(leaf-list)","type":"string","format":"leafref"}},"locators":{"description":"Contains VIM-specific resource locator properties for VMWARE multi VDC\nsupport in single VIM deployments. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"datacenter":{"description":"Specifies the name of the target datacenter of the resource. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"switch_name":{"description":"Specifies the name of the target switch for a network resource (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}},"policies":{"description":"Describes different policies that can be specified that will affect\nthe way VMs are brought up. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"external_dependencies":{"description":"Any dependencies such as service dependencies or network dependencies\nare listed in this section. If the dependencies are not\nmet, then registration is rejected. This is used to check\nfor the existence of service or network but will not be\ncreated if the services or network is not present. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"service_dependency":{"description":"These are the services that needs to be running. Eg dns, syslog (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"service":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"service_name":{"description":"Dependent Service Name (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"service_version":{"description":"Version of the dependent service (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"network_dependency":{"description":"Existence of these networks are checked but are not created if it does\nnot. If the dependency is not met, registration of the\nservice fails. This is a list. One can specify as may network\ndependencies as required. For example, external or management\nnetwork. These networks has to be pre-created and when\nspecifying the interfaces, the network to which its has to be\nconnected is specified. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"network":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Name of the dependent networks (leaf-list)","type":"string","format":"string"}}}}}},"placement_group":{"type":"array","description":"Placement group. Specifying it as a list allows us to\ndefine mutual relationship among different combination of vm_groups. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of placement group (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":"affinity or anti_affinity (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"affinity","enum":["affinity","anti_affinity","zone_host"]},"enforcement":{"description":"Strict or Loose enforcement (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"strict","enum":["strict"]},"vm_group":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"(leaf-list)","type":"string","format":"leafref"}}}}},"placement":{"type":"array","description":"Placement policy specification. Specifying it as a list allows us to\ndefine different placement policies among different\ncombination of vm_groups (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"target_vm_group_ref":{"description":"Name of the group whose VMs will be subjected to the placement\nrules specified below (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"type":{"description":"affinity or anti_affinity (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"affinity","enum":["affinity","anti_affinity","zone_host"]},"enforcement":{"description":"Strict or Loose enforcement (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"strict","enum":["strict"]},"vm_group_ref":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"(leaf-list)","type":"string","format":"leafref"}}}}},"startup":{"type":"array","description":"Start up sequence specification. This is achieved at the granularity\nof vm group. It allows one to specify start up of a\nparticular group of VMs depends on which other groups. When\ndo we say that the dependent group have successfully brought\nup ? This is achieved by waiting for an event that is\nspecified. Can be collection of events too. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"target_vm_group_ref":{"description":"Name of the group whose VMs will be subjected to the placement\nrules specified below (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"depends_on":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"vm_group_ref":{"description":"(leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"kpi_event_ref":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Here max and min elements is set to 1 as currently\nsupport only one event. (leaf-list)","type":"string","format":"leafref"}}}}}}}},"policy":{"type":"array","description":"The policy list that contains a list of conditions and a list of actions (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Unique policy name (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"conditions":{"description":"The lifecycle stage conditions to trigger actions (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"condition":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Unique condition type (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"LCS::PRE_DEPLOY","enum":["LCS::PRE_DEPLOY","LCS::POST_DEPLOY_ALIVE","LCS::DEPLOY_ERR","LCS::POST_DEPLOY::VM_RECOVERY_ERR","LCS::POST_DEPLOY::VM_RECOVERY_REDEPLOY_ERR","LCS::DEPLOY::PRE_SERVICE_DEPLOY_INIT","LCS::DEPLOY::PRE_VM_DEPLOY","LCS::DEPLOY::POST_VM_DEPLOYED","LCS::DEPLOY::POST_VM_DEPLOY_ERR","LCS::DEPLOY::POST_VM_ALIVE","LCS::DEPLOY::POST_SERVICE_DEPLOYED","LCS::DEPLOY::POST_SERVICE_DEPLOY_ERR","LCS::DEPLOY_UPDATE::PRE_SERVICE_UPDATE_INIT","LCS::DEPLOY_UPDATE::PRE_VM_DEPLOY","LCS::DEPLOY_UPDATE::POST_VM_DEPLOYED","LCS::DEPLOY_UPDATE::POST_VM_DEPLOY_ERR","LCS::DEPLOY_UPDATE::POST_VM_ALIVE","LCS::DEPLOY_UPDATE::PRE_VM_UPDATE","LCS::DEPLOY_UPDATE::POST_VM_UPDATED","LCS::DEPLOY_UPDATE::POST_VM_UPDATE_ERR","LCS::DEPLOY_UPDATE::PRE_VM_UNDEPLOY","LCS::DEPLOY_UPDATE::POST_VM_UNDEPLOYED","LCS::DEPLOY_UPDATE::POST_SERVICE_UPDATED","LCS::DEPLOY_UPDATE::POST_SERVICE_UPDATE_ERR","LCS::UNDEPLOY::PRE_SERVICE_UNDEPLOY_INIT","LCS::UNDEPLOY::PRE_VM_UNDEPLOY","LCS::UNDEPLOY::POST_VM_UNDEPLOYED","LCS::UNDEPLOY::POST_VM_UNDEPLOY_ERR","LCS::UNDEPLOY::POST_SERVICE_UNDEPLOYED","LCS::UNDEPLOY::POST_SERVICE_UNDEPLOY_ERR","LCS::POST_DEPLOY::PRE_VM_RECOVERY_INIT","LCS::POST_DEPLOY::POST_VM_RECOVERY_REBOOTED","LCS::POST_DEPLOY::POST_VM_RECOVERY_DEPLOYED","LCS::POST_DEPLOY::POST_VM_RECOVERY_COMPLETE","LCS::POST_DEPLOY::POST_VM_RECOVERY_ERR","LCS::POST_DEPLOY::PRE_VM_RECOVERY_REDEPLOY_INIT","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_DEPLOYED","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_COMPLETE","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_ERR","LCS::VM_SCALE_OUT::PRE_VM_SCALE_OUT_INIT","LCS::VM_SCALE_OUT::PRE_VM_DEPLOY","LCS::VM_SCALE_OUT::POST_VM_DEPLOYED","LCS::VM_SCALE_OUT::POST_VM_DEPLOY_ERR","LCS::VM_SCALE_OUT::POST_VM_ALIVE","LCS::VM_SCALE_OUT::POST_VM_SCALE_OUT_COMPLETE","LCS::VM_SCALE_OUT::POST_VM_SCALE_OUT_ERR","LCS::VM_SCALE_IN::PRE_VM_SCALE_IN_INIT","LCS::VM_SCALE_IN::PRE_VM_UNDEPLOY","LCS::VM_SCALE_IN::POST_VM_UNDEPLOYED","LCS::VM_SCALE_IN::POST_VM_UNDEPLOY_ERR","LCS::VM_SCALE_IN::POST_VM_SCALE_IN_COMPLETE","LCS::VM_SCALE_IN::POST_VM_SCALE_IN_ERR","LCS::VM::PRE_VM_DEPLOY","LCS::VM::POST_VM_DEPLOYED","LCS::VM::POST_VM_DEPLOY_ERR","LCS::VM::POST_VM_ALIVE","LCS::VM::PRE_VM_UNDEPLOY","LCS::VM::POST_VM_UNDEPLOYED","LCS::VM::POST_VM_UNDEPLOY_ERR","LCS::DEPLOY_UPDATE::PRE_VM_SOFTWARE_VERSION_UPDATE","LCS::DEPLOY_UPDATE::POST_VM_SOFTWARE_VERSION_UPDATED","LCS::DEPLOY_UPDATE::PRE_VM_VOLUME_DETACH","LCS::DEPLOY_UPDATE::POST_VM_VOLUME_DETACHED","LCS::DEPLOY_UPDATE::PRE_VM_VOLUME_ATTACH","LCS::DEPLOY_UPDATE::POST_VM_VOLUME_ATTACHED"]}}}}}},"actions":{"description":"The actions that will be triggered if conditions are satisfied (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"action":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":"Type of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}}}}},"networks":{"description":"These are the 'Ephemeral' networks that will be created\nand destroyed during deployment. Usually these are internal\nnetwork for that service which may be used for\ncommunication between VMs in this service. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"network":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the network to be created.\nThe name will be appended with the\ndeployment id during actual creation during deployment to\nmaintain uniqueness. These are given before vm_group so\nthat ESC can create the network before actually deploying\nany VMs on the network in one pass. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"shared":{"description":"Whether the network is shared among other tenants (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"admin_state":{"description":"Specifies whether the admin state is up or down. Set to true for up\nand false for down. If down, the network does not forward\npackets. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"router_external":{"description":"Indicates whether this network is externally accessible. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"provider_physical_network":{"description":"Specifies the name of the physical network\nover which the virtual network is implemented. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"provider_network_type":{"description":"Specifies the physical mechanism by which\nthe Virtual network is implemented. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"provider_segmentation_id":{"description":"ID or tunnel ID of the underlying physical network (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint32"},"switch_name":{"description":"(VMWare only) Specifies the name of the switch (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vlan_id":{"description":"(VMWare only) Specifies the vlan id to assign to this port group (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint32"},"number_of_ports":{"description":"(VMWare only) Specifies the number of ports to allocate on the port group (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint32"},"subnet":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the subnet (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"ipversion":{"description":"Size of the Volume (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"ipv4","enum":["ipv4","ipv6"]},"dhcp":{"description":"Are IP address for the VMs on this network are\nto be allocated by DHCP (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"address":{"description":"Subnet address for this network. Eg: 10.4.4.0 (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"netmask":{"description":"Subnet mask represented by IP address (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"ip_prefix":{"description":"Subnet mask represented by IP prefix.\nFor IPv4 subnet, it is 0 - 32. For IPv6\nsubnet, it is 0 - 128. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"gateway":{"description":"Default GW for the network. If un specified ESC will try\nto determine the gateway for the network. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"no_gateway":{"description":"no gateway for the network. It will ignore gateway setting (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"}}}}}}}}},"vm_group":{"type":"array","description":"This section allows one to define properties such as number of interfaces, type of\nmonitoring, monitoring frequency, type of eventing, scaling\nmechanism, elasticity properties, etc for each VM in this\ngroup. This represents a type of VM. For example, if one\nneeds two Webservers in a deployment, only one VM instance is\ndefined and number of instances is set to 2 in the scaling\nsection. If there are two types of VMs, for example a\nWebserver and a Database server, then such a service will\nhave two vm_groups: one for Webserver and another for\nDatabase server (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"A name for the VM group (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"locator":{"description":"Information to identify the target VIM and VIM related config to\nrealize the configuration like deployment. (presence)","type":"object","x-yang":{"type":"container","is_presence":"true"},"properties":{"vim_id":{"description":"Specifies the ESC defined id of the target VIM to apply the\nconfiguration. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vim_project":{"description":"Specifies the name of the target project to apply the configuration. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vim_region":{"description":"Specifies the name of the target region to apply the configuration. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vim_vdc":{"description":"Specifies the name of the target vDC to apply the configuration. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}},"image":{"description":"Image refers to pre-existing image in VIM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"flavor":{"description":"Flavor refers to pre-existing flavor in VIM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vim_vm_name":{"description":"User specified name for the VM on the VIM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"ngio":{"description":"configure ngio value for a VM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"ENABLE","enum":["ENABLE","DISABLE"]},"low_latency":{"description":"Allocates dedicated CPU's (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"volume":{"description":"Volume refers to pre-existing volume in VIM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"software_version":{"description":"Software version of the VM group (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"bootup_time":{"description":"Time in seconds that this VM takes to perform a cold boot. This will\nbe the time that ESC waits before deciding that the VM is\nun-bootable. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"},"recovery_wait_time":{"description":"Time in seconds that this VM takes to perform a normal warm\nreboot. This will be used to avoid premature VM recovery in\ncase VM becomes unresponsive due to operator reboot. This\nis important as VM recovery will results in loss of data\nthat is stored on root disk. If speedy recovery is more\nimportant than the data on the root disk, this value can be\noptionally set to 0. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"},"reboot_time":{"description":"Time in seconds that this VM takes to perform a normal reboot.\nif not specified, it will use bootup_time value. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"},"policies":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"policy":{"type":"array","description":"The policy list that contains a list of conditions and a list of actions (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Unique policy name (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"conditions":{"description":"The lifecycle stage conditions to trigger actions (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"condition":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Unique condition type (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"LCS::PRE_DEPLOY","enum":["LCS::PRE_DEPLOY","LCS::POST_DEPLOY_ALIVE","LCS::DEPLOY_ERR","LCS::POST_DEPLOY::VM_RECOVERY_ERR","LCS::POST_DEPLOY::VM_RECOVERY_REDEPLOY_ERR","LCS::DEPLOY::PRE_SERVICE_DEPLOY_INIT","LCS::DEPLOY::PRE_VM_DEPLOY","LCS::DEPLOY::POST_VM_DEPLOYED","LCS::DEPLOY::POST_VM_DEPLOY_ERR","LCS::DEPLOY::POST_VM_ALIVE","LCS::DEPLOY::POST_SERVICE_DEPLOYED","LCS::DEPLOY::POST_SERVICE_DEPLOY_ERR","LCS::DEPLOY_UPDATE::PRE_SERVICE_UPDATE_INIT","LCS::DEPLOY_UPDATE::PRE_VM_DEPLOY","LCS::DEPLOY_UPDATE::POST_VM_DEPLOYED","LCS::DEPLOY_UPDATE::POST_VM_DEPLOY_ERR","LCS::DEPLOY_UPDATE::POST_VM_ALIVE","LCS::DEPLOY_UPDATE::PRE_VM_UPDATE","LCS::DEPLOY_UPDATE::POST_VM_UPDATED","LCS::DEPLOY_UPDATE::POST_VM_UPDATE_ERR","LCS::DEPLOY_UPDATE::PRE_VM_UNDEPLOY","LCS::DEPLOY_UPDATE::POST_VM_UNDEPLOYED","LCS::DEPLOY_UPDATE::POST_SERVICE_UPDATED","LCS::DEPLOY_UPDATE::POST_SERVICE_UPDATE_ERR","LCS::UNDEPLOY::PRE_SERVICE_UNDEPLOY_INIT","LCS::UNDEPLOY::PRE_VM_UNDEPLOY","LCS::UNDEPLOY::POST_VM_UNDEPLOYED","LCS::UNDEPLOY::POST_VM_UNDEPLOY_ERR","LCS::UNDEPLOY::POST_SERVICE_UNDEPLOYED","LCS::UNDEPLOY::POST_SERVICE_UNDEPLOY_ERR","LCS::POST_DEPLOY::PRE_VM_RECOVERY_INIT","LCS::POST_DEPLOY::POST_VM_RECOVERY_REBOOTED","LCS::POST_DEPLOY::POST_VM_RECOVERY_DEPLOYED","LCS::POST_DEPLOY::POST_VM_RECOVERY_COMPLETE","LCS::POST_DEPLOY::POST_VM_RECOVERY_ERR","LCS::POST_DEPLOY::PRE_VM_RECOVERY_REDEPLOY_INIT","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_DEPLOYED","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_COMPLETE","LCS::POST_DEPLOY::POST_VM_RECOVERY_REDEPLOY_ERR","LCS::VM_SCALE_OUT::PRE_VM_SCALE_OUT_INIT","LCS::VM_SCALE_OUT::PRE_VM_DEPLOY","LCS::VM_SCALE_OUT::POST_VM_DEPLOYED","LCS::VM_SCALE_OUT::POST_VM_DEPLOY_ERR","LCS::VM_SCALE_OUT::POST_VM_ALIVE","LCS::VM_SCALE_OUT::POST_VM_SCALE_OUT_COMPLETE","LCS::VM_SCALE_OUT::POST_VM_SCALE_OUT_ERR","LCS::VM_SCALE_IN::PRE_VM_SCALE_IN_INIT","LCS::VM_SCALE_IN::PRE_VM_UNDEPLOY","LCS::VM_SCALE_IN::POST_VM_UNDEPLOYED","LCS::VM_SCALE_IN::POST_VM_UNDEPLOY_ERR","LCS::VM_SCALE_IN::POST_VM_SCALE_IN_COMPLETE","LCS::VM_SCALE_IN::POST_VM_SCALE_IN_ERR","LCS::VM::PRE_VM_DEPLOY","LCS::VM::POST_VM_DEPLOYED","LCS::VM::POST_VM_DEPLOY_ERR","LCS::VM::POST_VM_ALIVE","LCS::VM::PRE_VM_UNDEPLOY","LCS::VM::POST_VM_UNDEPLOYED","LCS::VM::POST_VM_UNDEPLOY_ERR","LCS::DEPLOY_UPDATE::PRE_VM_SOFTWARE_VERSION_UPDATE","LCS::DEPLOY_UPDATE::POST_VM_SOFTWARE_VERSION_UPDATED","LCS::DEPLOY_UPDATE::PRE_VM_VOLUME_DETACH","LCS::DEPLOY_UPDATE::POST_VM_VOLUME_DETACHED","LCS::DEPLOY_UPDATE::PRE_VM_VOLUME_ATTACH","LCS::DEPLOY_UPDATE::POST_VM_VOLUME_ATTACHED"]}}}}}},"actions":{"description":"The actions that will be triggered if conditions are satisfied (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"action":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":"Type of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}}}}},"misc":{"description":"Some miscellaneous configurations. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"watchdog":{"description":"Watch Dog (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"hardware":{"description":"Watchdog device to be used. i6300esb or ib700 (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"i6300esb","enum":["i6300esb","ib700"]},"action":{"description":"Action when watchdog fires:\nreset|shutdown|poweroff|pause|debug|none (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"reset","enum":["reset","poweroff","shutdown","pasue","debug","none"]}}}}},"volumes":{"description":"Volumes that are to be attached to the VM. The administrator can\nspecify a range for volumes outside vm_group section and\nthen specify xpath for the size here. This is enable the\ndeployer to choose any size within a range during deployment. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"volume":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the Volume (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"volid":{"description":"Volumes will be presented to the VM sorted by volume ID (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"bus":{"description":"Block device bus to be used: ide, scsi, virtio (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"ide","enum":["ide","scsi","virtio"]},"boot_index":{"description":"Specify the boot order for bootable volumes. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"size":{"description":"Size of the Volume (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint32"},"sizeunit":{"description":"Size units. MiB/GiB/TiB/PiB/EiB (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"MiB","enum":["MiB","GiB","TiB","PiB"]},"image":{"description":"Name or UUID of the source image (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":" Allows to provide scheduling to a specific back-end,\n and also can be used to specify specific information\n for a back-end storage device to act upon. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"format":{"description":" Format of the disk to create. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"qcow2","enum":["qcow2","raw","vmdk"]},"device_type":{"description":" Type of device being attached to the VM. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"disk","enum":["disk","cdrom"]},"storage_location":{"description":" Location of the storage volume. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"mount_path":{"description":" Mount path to bind the volume in a container. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"interfaces":{"description":"Specification of number of interfaces and properties for each\ninterface. The order of the interfaces specified here does\nnot correspond to the order of the interfaces in the VM. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"interface":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"nicid":{"description":"ID for the interfaces. This determines the order\nin which interfaces are presented to the guest VM (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"type":{"description":"Interface Type: virtual/passthru (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"virtual","enum":["virtual","passthru","direct","macvtap","access","trunk"]},"vim_interface_name":{"description":"User specified name for the interface on the VIM (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"model":{"description":"In case of virtual: e1000 or virtio. In case of passthrough:\nModel of the NIC. This will be specific to the data center. Data\ncenters may have NICs that support virtual functions from\ndifferent vendors, like Intel, Cisco etc. Passthrough is\nnot currently supported therefore, not exposing the\nmodels relevant to PASSTHROUGH as identities (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"e1000","enum":["e1000","ne2k_pci","virtio","i82551","i82557b","i82559er","rtl8139","pcnet"]},"admin_state_up":{"description":"The administrative state of the resource, which is up (true) or down (false). (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"network":{"description":"Network to which this interface needs to be attached. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"subnet":{"description":"Subnet within the network to where the port needs to be created. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"ip_address":{"description":"Static IP address for this interface (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"anycast_address":{"description":"Anycast address corresponding to this interface (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"public_ip_address":{"description":"Public IP address for this interface (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"mac_address":{"description":"Static MAC address for this interface (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"port_security_enabled":{"description":"Whether the port security is enabled at port level (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"bandwidth":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"min":{"description":"Minimum bandwidth required for this interface in Mbps (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"},"max":{"description":"Maximum bandwidth required for this interface in Mbps (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"}}},"security_groups":{"description":"Container for security group(s) set for this instance (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"security_group":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"IP filter rules that determine access control for the VM instance (leaf-list)","type":"string","format":"string"}}}},"allowed_address_pairs":{"description":"The allowed address is allows one to specify\narbitrary mac_address/ip_address(cidr) pairs that are\nallowed to pass through a port regardless of subnet. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"network":{"type":"array","description":"Network allowed on this interface (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Network name or uuid (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}},"address":{"type":"array","description":"Allowed address on this interface (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"ip_address":{"description":"IP address for this network. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"netmask":{"description":"Netmask for subnet address. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"}}}}}},"binding_profile":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"Binding profile property (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Property name (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Property value (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"port_forwarding":{"description":"This section allows for specifying port(s) to be forwarded\nexternally. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"port":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"type":{"description":"Type or purpose of the port to be forwarded (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"protocol":{"description":"Protocol type of traffic to be forwarded (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vnf_port":{"description":"Internal port of VNF to be exposed externally. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"source_bridge":{"description":"Bridge that will be used to access the server externally. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"external_port_range":{"type":"array","description":"Contiguous block of external ports can be specified using range. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"start":{"description":"Starting external port in the range (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"end":{"description":"Ending external port in the range (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"}}}}}}}}}}}}}},"kpi_data":{"description":"In this section one can specify the monitoring rules that will be used\nto configure the monitor module with in ESC. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"enabled":{"description":"This field is used to specify if the KPIs defined here are enabled or\ndisabled. Currently there is the 'enabled' flag is not per\nKPI but rather refers to all KPIs for a VM. If all the VMs\nin the service needs to be disabled and they are part of\ndifferent VM groups, then this flag needs to be specified\non for each of them. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"kpi":{"type":"array","description":"This block will be sent to monitor module during deployment and\ndefines parameters that are required for monitoring VMs and\nits events thereof (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"event_name":{"description":"A user defined event name. Corresponding event name should exist in\nthe rules section. Monitor module informs the event\ngenerator when eventing situation has occurred inside the\nVM. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"monitoring_agent":{"description":"It specifies the monitor for VNF, e.g. local MONA or distributed MONA (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"metric_value":{"description":"Threshold value that should be checked by monitor module (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"metric_cond":{"description":"Supported Conditions: 'GT', 'LT', 'EQ', 'GE', 'LE' (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"GT","enum":["GT","LT","EQ","GE","LE"]},"metric_type":{"description":"Supported Types: 'INT8', 'UINT8','INT16', 'UINT16',\n 'INT32', 'UINT32', 'FLOAT', 'DOUBLE' (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"INT8","enum":["INT8","INT16","INT32","UINT8","UINT16","UINT32","FLOAT","DOUBLE"]},"metric_occurrences_true":{"description":"Number of successive polling cycles monitoring module finds the\ncondition to be true before sending an event to the\neventing (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"metric_occurrences_false":{"description":"Number of successive polling cycles monitoring module finds the\ncondition to be false before sending an event to the\neventing (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"metric_proxy":{"description":"This field contains the IP address/host name of the proxy node that\nWILL be contacted to retrieve the status information of\nthe secondaries that the node is monitoring. This field is\ntypically used when we have a primary node that manages\nother secondary nodes that are not accessible by ESC. ESC\ntherefore has to contact the primary to rertrieve the\nstatus information of the secondaries. This field is used by\nthe primary to specify the proxy ip address that should be\ncontacted by ESC to get the status information of the\nsecondaries. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"metric_collector":{"description":"This section provides information about the metrics that needs\nto be monitored and at what frequency should the monitoring\nhappen (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"type":{"description":"Type that monitor module should monitor. Example: ICMP_Ping.\nThese are the types that are supported by the monitor\nmodule. List of all supported names is monitor module\ndependent and the reader is advised to refer to the\ndocumentation of the monitor module used in a specific\nimplementation. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"nicid":{"description":"Interface that should be used to monitor the metric.\nThis is used when proxy is not used. Ensure that interface\nwith this ID is specified earlier (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"address_id":{"description":"Address within the interface that should be used to monitor the metric.\nThis is used when proxy is not used and nicid interface has multiple addresses.\nEnsure that an address with this ID is specified earlier (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"proxy":{"description":"This field contains the IP address/host name of the proxy\nnode that SHOULD be contacted to retrieve the status information\nof the secondary node. This field is used by the secondary to\nspecify the proxy address that the primary has exposed\nto get its status information. Typically the proxy IP\nof the primary is specified in metric_proxy above and an\nxpath is used here to refer to that above proxy\naddress. This field is used instead of the network as\nthe IP address on the private network will not be\naccessible. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"poll_frequency":{"description":"Frequency with which the metric should be polled\nby the monitor module (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"},"polling_unit":{"description":"Units of poll frequency: seconds or minutes (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"minutes","enum":["minutes","seconds"]},"continuous_alarm":{"description":"Continuous events needs to be generated or is it a one time\nevent. One time event:\nExample VM booted. Continuous event: Load is high (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"monitoring_public_ip":{"description":"If true to ping the public IP address of the nic instead of the private one. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}},"rules":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"admin_rules":{"description":"These are the rules that an administrator specifies when the service\nis registered. This action is taken for each and every\ndeployment of the service. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"rule":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"event_name":{"description":"Event name: Corresponding event_name should be present in the\nmonitoring section (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"action":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Action associated with the above event.\nThere is a specific format for\nthis and the description should be updated with more useful\ninformation. (leaf-list)","type":"string","format":"string"}},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}},"user_rules":{"description":"These are user specified rules which are an addendum for the admin\nrules. These are per deployment. For example: User may want\nto know when his VM died. The script may just generate an\nEmail (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"rule":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"event_name":{"description":"Event name: Corresponding event_name should be present in the\nmonitoring section (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"action":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Action associated with the above event.\nThere is a specific format for\nthis and the description should be updated with more useful\ninformation. (leaf-list)","type":"string","format":"string"}},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}},"lcm_rules":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"lcm_rule":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"lifecycle_stage":{"description":"Defines the stage at which this action(s) need to be executed. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"PRE_DEP","enum":["PRE_DEP","POST_DEP","DEP_ERROR","PRE_UNDEP","POST_UNDEP","VM_RECOVERY_ERROR","VM_RECOVERY_REDEPLOY_ERROR"]},"actions":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"action":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the action. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":"Type of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"stop_on_error":{"description":"If true, stops VM/Service life cycle if action\nthrows an error. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}}}}},"config_data":{"description":"This enables to pass day-0 configuration data into the service\nVM. There are two ways: File, and inline data. In either case\na CDROM is created with the contents of the configuration\ndata and is attached to the VM. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"config_type":{"description":"Defines how ESC will process the configuration data.\nif empty, it is VIM Specific behaviour.\nThe other values supported are CREATE_ISO, CONFIG_DATA_OPTIONS for VIM - CSP (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"CREATE_ISO","enum":["CREATE_ISO","CONFIG_DATA_OPTIONS"]},"config_options":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"options":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"option":{"type":"array","description":"The list of options to be used in handling the config. This is an unbounded\nlist. Each option must have a unique name. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name indicating purpose of the options, such as genisoimage where the\nvalue list are the required command line parameters (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"List of data required for processing the options. Possibly command line variables.\nEach element is defined separately, in the case of a parameter with a value it should\nbe defined together such as -cmdswitch xyz. (leaf-list)","type":"string","format":"string"}}}}}}}}},"configuration":{"type":"array","description":"This represents a list of configuration files/templates.\nThis being a list allows one to specify multiple day-0\nconfigurations. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"file":{"description":"ESC downloads the file specified by the URL.\nThis will be used as a template to replace the tokens\nspecified in this template with the values specified in the\n'variable' section. This field and 'data are mutually\nexclusive. This template is used to generate the\nactual day-0 configuration files. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"dst":{"description":"Name of the configuration file that service VM is expecting. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"template_engine":{"description":"Specify the engine you want to use for token replacement (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"VELOCITY","enum":["VELOCITY","NONE"]},"enforce_variable_replacement":{"description":"Checks the variables in the day 0 file against the config data section. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"variable":{"type":"array","description":"These are the variables that are specified in the template. This is\nan unbounded list. Each variable should have a name and\nat least one value. Multiple values can be specified if\na non zero value is specified to 'min' and 'max' in the\nscaling section. The values here are treated as a pool\nand is managed by ESC. ESC picks up one value each time\nit spins a new VM either because scaling or because a\nvalue greater than 1 is specified for 'min' in the\nscaling section. When the VMs are destroyed because of\nscale-in the values are returned back to the pool (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the variable.\nThis is case sensitive and should match exactly\nas given in the template. ESC token manager will scan\nthe template file and will replace the FIRST occurrence\nof the variable with the next non-used (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"val":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Number of values here should match the max value specified in\nthe scaling section so that we have enough values for all the\nVMs that can be spun. (leaf-list)","type":"string","format":"string"}}}}}}}}}},"port_forwarding":{"description":"This section allows for specifying port(s) to be forwarded\nexternally. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"port":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"type":{"description":"Type or purpose of the port to be forwarded (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"protocol":{"description":"Protocol type of traffic to be forwarded (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"vnf_port":{"description":"Internal port of VNF to be exposed externally. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"source_bridge":{"description":"Bridge that will be used to access the server externally. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"external_port_range":{"type":"array","description":"Contiguous block of external ports can be specified using range. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"start":{"description":"Starting external port in the range (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"end":{"description":"Ending external port in the range (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"}}}}}}}}},"scaling":{"description":"This section can be used to specify how many instances of a particular\ntype of VM needs to be instantiated and whether elastic\nscale-out and scale-in is desired. Is one wishes to have a 2\nstatic VMs, it can be achieved by specifying min_active =\nmax_active = 2. (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"min_active":{"description":"Minimum number of VMs in the deployment. Irrespective of what the\nload is on these VMs, ESC ensures at least the minimum\nnumber of service VMs will always be running. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"min_standby":{"description":"Minimum number of standby VMs in the deployment. Irrespective of what\nratio is specified, ESC ensures at least the minimum number\nof service VMs will always be running. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"max_active":{"description":"As the load increases if elastic mode is enabled, then new VMs are\ninstantiated. At most max_active number of VMs will be\ninstantiated by ESC. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"max_standby":{"description":"As the load increases if elastic mode is enabled, then new VMs are\ninstantiated. At most max_active number of VMs will be\ninstantiated regardless of the ratio specified. (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"standby_ratio":{"description":"As the load increases if elastic mode is enabled, then new VMs are\ninstantiated. This value determines when additional standby\nVMs will be created as scaling events occur. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"elastic":{"description":"Request elastic scale-out and scale-in (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"static_mac_address_pool":{"type":"array","description":"If static MAC addresses are required for the VMs that are\ninstantiated during scale-out, it can be specified here.\nESC manages this\npool of MAC and determines which VM gets what MAC address. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"network":{"description":"This can be a name or UUID of the network to\nwhich the MAC addresses specified below belong to. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"mac_address_range":{"type":"array","description":"Contiguous block of MAC address can be specified using range. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"start":{"description":"Starting MAC address in the range (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"end":{"description":"Ending MAC address in the range (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}},"mac_address":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Non-contigeous individual random MAC addresses. (leaf-list)","type":"string","format":"string"}}}}},"static_license_pool":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"license":{"type":"array","description":"If VMs need a license to be applied, you can specify the key-license_data map\nso that it's applied when the VM becomes alive. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"license_key_value":{"description":"The key for this license, this can be a MAC address for example. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"license_key_type":{"description":"The type of key for the license, this can be MAC addr, IP addr...\nFor now only support MAC (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"mac_addr","enum":["mac_addr"]},"license_file":{"description":"ESC downloads the file specified by the URL.\nThis field and 'data are mutually\nexclusive. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"static_ip_address_pool":{"type":"array","description":"If static IP addresses are required for the VMs that are instantiated\nduring scale-out, it can be specified here. ESC manages this\npool of IP and determines which VM gets what IP address. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"network":{"description":"This can be a name or UUID of the network to\nwhich the IP addresses specified below belong to. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"gateway":{"description":"Default gateway of the network. If left unspecified, ESC should\ndetermine this information by querying the underlying\ninfrastructure. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"netmask":{"description":"Netmask for the network. If left unspecified, ESC should determine\nthis information by querying the underlying\ninfrastructure. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"ip_prefix":{"description":"Subnet mask represented by IP prefix. For IPv4 subnet, it is 0 - 32. For IPv6\nsubnet, it is 0 - 128. If left unspecified, ESC should determine this\ninformation by querying the underlying infrastructure. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"ip_address_range":{"type":"array","description":"Contiguous block of IP address can be specified using range. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"start":{"description":"Starting IP address in the range (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"},"end":{"description":"Ending IP address in the range (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"}}}},"ip_address":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Non-contiguous individual random IP addresses. (leaf-list)","type":"string","format":"union"}}}}}}},"placement":{"type":"array","description":"Placement policy within a VM group. keying off of\ntype as we cannot have same rule multiple times within\nthe group. (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"type":{"description":"affinity, anti_affinity, zone_host (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"affinity","enum":["affinity","anti_affinity","zone_host"]},"enforcement":{"description":"Strict or Loose enforcement (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"strict","enum":["strict"]},"host":{"description":"Host on which the affinity rules specified above should be applied against the VMs of group specified above. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}},"shared_ip":{"type":"array","description":"Shared Ip is the ip address that is assigned to the vm_group (list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"nicid":{"description":"Interface where the static_ip property is applied.\nEnsure that interface with this ID is specified earlier (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"leafref"},"static":{"description":"Is the shared_ip static (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"ip_address":{"description":"Static IP address for this interface (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"union"}}}},"properties":{"description":"List of key value pair to be passed to esc to\nconfigure the vmgroup properties. For example, key is NOTIFY_EXTERNAL_MONITOR\nand the value is ENABLED (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"prop_key":{"description":"key for the property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"NOTIFY_EXTERNAL_MONITOR","enum":["NOTIFY_EXTERNAL_MONITOR"]},"prop_value":{"description":"value of the property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"recovery_policy":{"description":"Policy of recovery (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"recovery_type":{"description":"The type of recovery (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"AUTO","enum":["AUTO","MANUAL"]},"action_on_recovery":{"description":"The action performed during recovery (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"REBOOT_THEN_REDEPLOY","enum":["REBOOT_THEN_REDEPLOY","REBOOT_ONLY","REDEPLOY_ONLY"]},"max_retries":{"description":"The number of recovery attempts (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"uint16"},"monitor_on_error":{"description":"Continue monitoring of VM on error state.\nBy Default monitoring is disabled on VM error state.\nWhen monitor_on_error flag is set to true, monitor is not disabled on error state and continues to monitor. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"}}},"vmexport_policy":{"description":"Policy of vm export (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"disk_exclusion":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"disk_name":{"description":"The disk to exclude. One of 'image name' /\n'image name:disk name' / 'volume name' (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"serial_ports":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"serial_port":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"serial":{"description":"serial port number (leaf)","x-yang":{"type":"leaf"},"type":"integer","format":"inte16"},"serial_type":{"description":"serial type, telnet or console (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"telnet","enum":["telnet","console"]},"service_port":{"description":"service port number (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"int32"}}}}}},"vnc":{"description":"VNC of the vm group (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"password":{"description":"VNC password attribute in clear text (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}},"lcm_rules":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"lcm_rule":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"lifecycle_stage":{"description":"Defines the stage at which this action(s) need to be executed. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"enumeration","default":"PRE_DEP","enum":["PRE_DEP","POST_DEP","DEP_ERROR","PRE_UNDEP","POST_UNDEP","VM_RECOVERY_ERROR","VM_RECOVERY_REDEPLOY_ERROR"]},"actions":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"action":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name of the action. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"type":{"description":"Type of the action (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"stop_on_error":{"description":"If true, stops VM/Service life cycle if action\nthrows an error. (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"boolean"},"properties":{"description":"List of property name/value pairs (non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"property":{"type":"array","description":"(list)","x-yang":{"type":"list"},"items":{"type":"object","properties":{"name":{"description":"Name/Key of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"},"value":{"description":"Value of property (leaf)","x-yang":{"type":"leaf"},"type":"string","format":"string"}}}}}}}}}}}}}}}},"deployment_groups":{"description":"(non-presence)","type":"object","x-yang":{"type":"container","is_presence":"false"},"properties":{"anti_affinity_group":{"type":"array","x-yang":{"type":"leaf-list"},"items":{"description":"Reference to the anti-affinity groups to which this deployment pertains to.\nThat is, any deployment referencing the same anti-affinity group (in the present or future)\nwill have an anti-affinity relationship to this deployment. (leaf-list)","type":"string","format":"string"}}}}}}}},"$$ref":"#/definitions/data_vmlc_vm_lifecycle_tenants_tenant_tenant-name_deployments_deployment_deployment-name"},"$$ref":"#/parameters/data_vmlc_vm_lifecycle_tenants_tenant_tenant-name_deployments_deployment_deployment-name"},{"name":"insert","in":"query","description":"controlling the order when adding new list elements","required":false,"type":"string","format":"enumeration","default":"first","enum":["first","last","before","after"],"$$ref":"#/parameters/insert"},{"name":"point","in":"query","description":"used to specify the insertion point","required":false,"type":"string","format":"string","$$ref":"#/parameters/point"}],"responses":{"201":{"description":"list deployment created or replaced"},"204":{"description":"No Content","$$ref":"#/responses/204"},"400":{"description":"Bad Request","$$ref":"#/responses/400"},"401":{"description":"Unauthorized","$$ref":"#/responses/401"},"404":{"description":"Not Found","$$ref":"#/responses/404"},"405":{"description":"Method Not Allowed","$$ref":"#/responses/405"},"409":{"description":"Conflict","$$ref":"#/responses/409"}},"security":[{"basicAuth":[]}],"__originalOperationId":"data_vmlc_vm_lifecycle_tenants_tenant_tenant_name_deployments_deployment_deployment_name_put","consumes":["application/yang-data+json"],"method":"put","path":"/data/vmlc:vm_lifecycle/tenants/tenant={tenant-name}/deployments/deployment={deployment-name}"}}