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

public AviVsVipCreateWithIPAM(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 {

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

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

    let objAviVroClient: AviVroClient = objAviWorkflowRuntime.getAviVroClient();

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

    let strAviNetworkRef: string = objAviNetwork.getUrl();

    let arrAviSubnet: AviSubnet[] = objAviNetwork.getConfiguredSubnets();

    let objAviSubnet: AviSubnet = arrAviSubnet[0];

    let objAviIpAddrPrefix: AviIpAddrPrefix = objAviSubnet.getPrefix();

    let ip: AviIpAddr = objAviIpAddrPrefix.getIpAddr();

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

    let objAviDiscoveredNetwork: AviDiscoveredNetwork = new AviDiscoveredNetwork();
    objAviDiscoveredNetwork.setSubnet(arrAviIpAddrPrefix);
    objAviDiscoveredNetwork.setNetworkRef(strAviNetworkRef);

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

    let objAviIPNetworkSubnet: AviIPNetworkSubnet = new AviIPNetworkSubnet();
    objAviIPNetworkSubnet.setSubnet(objAviIpAddrPrefix);
    objAviIPNetworkSubnet.setNetworkRef(strAviNetworkRef);

    let objAviIpAddr: AviIpAddr = objAviIpAddrPrefix.getIpAddr();

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

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

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

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

    return objAviWorkflowRuntime;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like