Orchestrator Function: AVI VsVip Create with IPAM

by Simon Sparks · 11 March 2026

To use this function add it to the class library file named PluginAVIService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: PluginAVIService.ts

Description: Orchestrator Function to Create an AVI VsVip with IPAM.

Private Function: AviVsVipCreateWithIPAM

publicAviVsVipCreateWithIPAM(objAviWorkflowRuntime:AviWorkflowRuntime,strTenant:string="admin",strAviCloud:string="Default-Cloud",strVipID:string,strVsVipUUID:string,strName:string,strFQDN:string,strNetworkName:string,strAviIpAddrType:"V4"|"V6",strAutoAllocateIpType:"V4_ONLY",strAviDnsInfoAlgorithm:"DNS_RECORD_RESPONSE_ROUND_ROBIN"|"DNS_RECORD_RESPONSE_CONSISTENT_HASH"="DNS_RECORD_RESPONSE_CONSISTENT_HASH",strAviDnsInfoType:"DNS_RECORD_OTHER"|"DNS_RECORD_A"|"DNS_RECORD_NS"|"DNS_RECORD_CNAME"|"DNS_RECORD_SOA"|"DNS_RECORD_PTR"|"DNS_RECORD_HINFO"|"DNS_RECORD_MX"|"DNS_RECORD_TXT"|"DNS_RECORD_RP"|"DNS_RECORD_DNSKEY"|"DNS_RECORD_AAAA"|"DNS_RECORD_SRV"|"DNS_RECORD_OPT"|"DNS_RECORD_RRSIG"|"DNS_RECORD_AXFR"|"DNS_RECORD_ANY"="DNS_RECORD_A",strLogicalRouterTier1:string,intTTL:number=30,blnAutoAllocateIp:boolean,blnEnabled:boolean,blnAviAllocatedFIp:boolean,blnAutoAllocateFloatingIp:boolean,blnAviAllocatedVip:boolean,blnEastWestPlacement:boolean):AviWorkflowRuntime{

letobjAviDnsInfo:AviDnsInfo=this.AviDnsInfoBuild(strFQDN,intTTL,strAviDnsInfoType,strAviDnsInfoAlgorithm)

letarrAviDnsInfo:AviDnsInfo[]= [];
arrAviDnsInfo.push(objAviDnsInfo);

letobjAviVroClient:AviVroClient=objAviWorkflowRuntime.getAviVroClient();

letobjAviNetwork:AviNetwork=objAviVroClient.getObjectByName("network",strNetworkName,strTenant);

letstrAviNetworkRef:string=objAviNetwork.getUrl();

letarrAviSubnet:AviSubnet[]=objAviNetwork.getConfiguredSubnets();

letobjAviSubnet:AviSubnet=arrAviSubnet[0];

letobjAviIpAddrPrefix:AviIpAddrPrefix=objAviSubnet.getPrefix();

letip:AviIpAddr=objAviIpAddrPrefix.getIpAddr();

letarrAviIpAddrPrefix:AviIpAddrPrefix[]= [];
arrAviIpAddrPrefix.push(objAviIpAddrPrefix);

letobjAviDiscoveredNetwork:AviDiscoveredNetwork=newAviDiscoveredNetwork();
objAviDiscoveredNetwork.setSubnet(arrAviIpAddrPrefix);
objAviDiscoveredNetwork.setNetworkRef(strAviNetworkRef);

letarrAviDiscoveredNetwork:AviDiscoveredNetwork[]= [];
arrAviDiscoveredNetwork.push(objAviDiscoveredNetwork);

letobjAviIPNetworkSubnet:AviIPNetworkSubnet=newAviIPNetworkSubnet();
objAviIPNetworkSubnet.setSubnet(objAviIpAddrPrefix);
objAviIPNetworkSubnet.setNetworkRef(strAviNetworkRef);

letobjAviIpAddr:AviIpAddr=objAviIpAddrPrefix.getIpAddr();

letobjAviVip:AviVip=this.AviVipBuild(strAviIpAddrType,objAviIpAddr.getAddr(),strVipID,blnEnabled,strAutoAllocateIpType,arrAviDiscoveredNetwork,objAviIPNetworkSubnet,blnAviAllocatedFIp,blnAutoAllocateIp,blnAutoAllocateFloatingIp,blnAviAllocatedVip);

letarrAviVip:AviVip[]= [];
arrAviVip.push(objAviVip);

letobjAviVsVip:AviVsVip=this.AviVsVipBuild(strAviCloud,strTenant,strName,strVsVipUUID,arrAviVip,arrAviDnsInfo,strLogicalRouterTier1,blnEastWestPlacement);

objAviVroClient.addObject(objAviVsVip,objAviWorkflowRuntime.getWorkflowId(),strTenant);

returnobjAviWorkflowRuntime;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like