Function: AVI Virtual Service Build

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 Build an AVI Virtual Service.

Private Function: AviVirtualServiceBuild

private AviVirtualServiceBuild(strUUID: string, strName: string, strDescription: string, strTenant: string = "admin", strAviCloud: string = "Default-Cloud", arrAviService: AviService[], intMaxCpsPerClient: number,
    strPoolName: string, strPoolGroupName: string, strAnalyticsProfileName: string, strSSLProfileName: string, strApplicationProfileName: string, strSslKeyAndCertificateName: string, strNetworkProfileName: string,
    blnEnableAutogw: boolean = true, blnEnableRhiSnat: boolean = false, blnUseVipAsSnat: boolean = false, blnEnableRhi: boolean = false, blnIgnPoolNetReach: boolean = false, blnUseBridgeIpAsVip: boolean = false, blnAllowInvalidClientCert: boolean = false, blnScaleoutEcmp: boolean = false, blnTrafficEnabled: boolean = true, blnRemoveListeningPortOnVsDown: boolean = true, blnCloseClientConnOnConfigUpdate: boolean = true): AviVirtualService {

    let objAviVirtualService: AviVirtualService = new AviVirtualService();
    objAviVirtualService.setName(strName);
    objAviVirtualService.setDescription(strDescription);
    objAviVirtualService.setServices(arrAviService);

    objAviVirtualService.setVsvipRef("/api/vsvip?name=" + strName);
    objAviVirtualService.setCloudRef("/api/cloud?name=" + strAviCloud);
    objAviVirtualService.setTenantRef("/api/tenant?name=" + strTenant);
    objAviVirtualService.setApplicationProfileRef("/api/applicationprofile?name=" + strApplicationProfileName);
    objAviVirtualService.setAnalyticsProfileRef("/api/analyticsprofile?name=" + strAnalyticsProfileName);
    objAviVirtualService.setSslProfileRef("/api/sslprofile?name=" + strSSLProfileName);
    objAviVirtualService.addSslKeyAndCertificateRefsItem("/api/sslkeyandcertificate/?name=" + strSslKeyAndCertificateName);
    objAviVirtualService.setPoolGroupRef("/api/poolgroup?name=" + strPoolGroupName);
    objAviVirtualService.setPoolRef("/api/pool?name=" + strPoolName);
    objAviVirtualService.setNetworkProfileRef("/api/networkprofile?name=" + strNetworkProfileName);

    if (strUUID) {
        objAviVirtualService.setUuid(strUUID);
    }
    if (blnAllowInvalidClientCert) {
        objAviVirtualService.setAllowInvalidClientCert(blnAllowInvalidClientCert);
    }
    if (blnCloseClientConnOnConfigUpdate) {
        objAviVirtualService.setCloseClientConnOnConfigUpdate(blnCloseClientConnOnConfigUpdate);
    }
    if (intMaxCpsPerClient) {
        objAviVirtualService.setMaxCpsPerClient(intMaxCpsPerClient);
    }
    if (blnRemoveListeningPortOnVsDown) {
        objAviVirtualService.setRemoveListeningPortOnVsDown(blnRemoveListeningPortOnVsDown);
    }
    if (blnScaleoutEcmp) {
        objAviVirtualService.setScaleoutEcmp(blnScaleoutEcmp);
    }
    if (blnTrafficEnabled) {
        objAviVirtualService.setTrafficEnabled(blnTrafficEnabled);
    }
    if (blnUseBridgeIpAsVip) {
        objAviVirtualService.setUseBridgeIpAsVip(blnUseBridgeIpAsVip);
    }
    if (blnUseVipAsSnat) {
        objAviVirtualService.setUseVipAsSnat(blnUseVipAsSnat);
    }
    if (blnEnableAutogw) {
        objAviVirtualService.setEnableAutogw(blnEnableAutogw);
    }
    if (blnEnableRhi) {
        objAviVirtualService.setEnableRhi(blnEnableRhi);
    }
    if (blnEnableRhiSnat) {
        objAviVirtualService.setEnableRhiSnat(blnEnableRhiSnat);
    }
    if (blnIgnPoolNetReach) {
        objAviVirtualService.setIgnPoolNetReach(blnIgnPoolNetReach);
    }

    return objAviVirtualService;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like