Orchestrator Class Library: Orchestrator Plugin vRealize Automation Service

by Simon Sparks · 28 February 2026

This is a sample of how to create service which extends the PluginBaseService using the Build Tools.

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

Filename: PluginVRAService.ts

import{MissingRequiredParameterError}from"../../utilities/Extensions";
import{PluginBaseService}from"./PluginBaseService";

exportclassPluginVRAServiceextendsPluginBaseService{

constructor(strProjectID:string){

if (!strProjectID){
thrownewMissingRequiredParameterError('strProjectID');
}

super(strProjectID,"PluginVRA");
}

publicFindAllForType<T>(strObjectType:"BlockDevice"|"CloudAccount"|"CloudAccountNsxT"|"CloudAccountNsxV"|"CloudAccountVsphere"|"DataCollector"|"FabricNetwork"|"FlavorProfile"|"Host"|"ImageProfile"|"Infrastructure"|"Machine"|"MachinesFolder"|"Network"|"NetworkInterface"|"NetworkProfile"|"Project"|"Region"|"RequestTracker"|"Snapshot"|"StorageProfile"|"Tag"|"Zone",strXPathQuery?:string):T[]{

letstrObjectTypePrefix:string="VRA";

letstrObjectTypeName:string=`${strObjectTypePrefix}:${strObjectType}`;

letarrObjectType:T[]=this.serverFindAllForType<T>(strObjectTypeName,strXPathQuery);

returnarrObjectType;
}

publicFindForType<T>(strObjectType:"BlockDevice"|"CloudAccount"|"CloudAccountNsxT"|"CloudAccountNsxV"|"CloudAccountVsphere"|"DataCollector"|"FabricNetwork"|"FlavorProfile"|"Host"|"ImageProfile"|"Infrastructure"|"Machine"|"MachinesFolder"|"Network"|"NetworkInterface"|"NetworkProfile"|"Project"|"Region"|"RequestTracker"|"Snapshot"|"StorageProfile"|"Tag"|"Zone",strObjectID:string):T{

letstrObjectTypePrefix:string="VRA";

letstrObjectTypeName:string=`${strObjectTypePrefix}:${strObjectType}`;

letobjObjectType:T=this.serverFindForType<T>(strObjectTypeName,strObjectID);

returnobjObjectType;
}
}

Class Functions:


Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like