Orchestrator Function: vCenter VAPI Plugin Connect and Basic Object Retrieval

by Simon Sparks · January 13, 2026

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

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

Filename: vCenterVAPIService.ts

Function VAPIConnect & VAPIDisconnect

protected VAPIConnect(objVcSdkConnection: VcSdkConnection): boolean {

    let blnReturn: boolean = false;

    try {
        this.objVAPIEndpoint = VAPIManager.findEndpoint("https://" + objVcSdkConnection.id + "/api");

        this.objVAPIClient = this.objVAPIEndpoint.client(null, null);

        blnReturn = true;
    }
    catch (objException) {
        blnReturn = false;
    }

    return blnReturn;
}

protected VAPIDisconnect(): boolean {

    let blnReturn: boolean = false;

    try {
        this.objVAPIClient.close();

        this.objVAPIEndpoint = null;
        this.objVAPIClient = null;

        blnReturn = true;
    }
    catch (objException) {
        blnReturn = false;
    }

    return blnReturn;
}

Function getTagCategories

private getTagCategories(objVAPIClient: VAPIClient): com_vmware_cis_tagging_category__model[] {

    let objVAPITaggingCategory: com_vmware_cis_tagging_category = new com_vmware_cis_tagging_category(objVAPIClient);

    let arrTagCategoryID: string[] = objVAPITaggingCategory.list();

    let arrVAPITagCategoryModel: com_vmware_cis_tagging_category__model[] = arrTagCategoryID.map((strTagCategoryID: string): com_vmware_cis_tagging_category__model => {
        let objVAPITagCategoryModel: com_vmware_cis_tagging_category__model = objVAPITaggingCategory.get(strTagCategoryID);

        return objVAPITagCategoryModel;
    });

    return arrVAPITagCategoryModel;
}

Function findTagCategoryIDByName.

private findTagCategoryIDByName(objVAPIClient: VAPIClient, strTagCategoryName: string): string {

    let arrVAPITagCategoryModel: com_vmware_cis_tagging_category__model[] = this.getTagCategories(objVAPIClient);

    let objVAPITagCategoryModel: com_vmware_cis_tagging_category__model = arrVAPITagCategoryModel.find((objVAPITagCategoryModel: com_vmware_cis_tagging_category__model): boolean => {

        return objVAPITagCategoryModel.name == strTagCategoryName;
    });

    return objVAPITagCategoryModel.id;
}

Function findTagsByCategoryID

private findTagsByCategoryID(objVAPIClient: VAPIClient, strTagCategoryID: string): com_vmware_cis_tagging_tag__model[] {

    let objVAPITaggingTag: com_vmware_cis_tagging_tag = new com_vmware_cis_tagging_tag(objVAPIClient);

    let arrTagIDs: string[] = objVAPITaggingTag.list_tags_for_category(strTagCategoryID);

    let arrVMwareCISTaggingTagModel: com_vmware_cis_tagging_tag__model[] = arrTagIDs.map((strTagID: string): com_vmware_cis_tagging_tag__model => {
        let objVMwareCISTaggingTagModel: com_vmware_cis_tagging_tag__model = objVAPITaggingTag.get(strTagID);

        return objVMwareCISTaggingTagModel;
    });

    return arrVMwareCISTaggingTagModel;
}

Function findTagIDByNameFromSpecificCategoryID

private findTagIDByNameFromSpecificCategoryID(objVAPIClient: VAPIClient, strTagName: string, strTagCategoryID: string): string {

    let arrVMwareCISTaggingTagModel: com_vmware_cis_tagging_tag__model[] = this.findTagsByCategoryID(objVAPIClient, strTagCategoryID);

    let objVMwareCISTaggingTagModel: com_vmware_cis_tagging_tag__model = arrVMwareCISTaggingTagModel.find((objVMwareCISTaggingTagModel: com_vmware_cis_tagging_tag__model): boolean => {

        return objVMwareCISTaggingTagModel.name === strTagName;
    });

    return objVMwareCISTaggingTagModel.id;

}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like