The following code defines the Groovy Interface for the GenRocket API. The Groovy source code is compiled into a Java Binary. A detailed description of each method is described within the set of GenRocket API documents.
package com.genRocket.engine
interface EngineAPI {
  // Recording Commands
  void recordingNew(String recordingName, Boolean overwrite)
  void recordingStart()
  void recordingPause()
  void recordingStop()
  void recordingLoad(String recordingName)
  void recordingPlay()
  void recordingDelete(String recordingName)
  List<String> recordings()
  Map<String, Object> recordingShow(String recordingName)
  // Pairwise
  public void pairwiseModify(String pathAndFilename)
  // Scenario Commands
  void scenarioLoad(String scenarioPathAndName)
  void scenarioLoad(String scenarioPathAndName, Boolean initialize)
  void scenarioLoad(String scenarioPathAndName, Boolean initialize, Map<String, String> resources)
  Map<String, EngineResourceVariable> loadResources(String profileId)
  List<Map<String, String>> listOrganizationVariables()
  List<Map<String, String>> listDomainVariables()
  void organizationVariableSet(String name, String value)
  void domainVariableSet(String name, String value)
  String resourceValue(String resourceName)
  List<String> scenarios()
  List<Long> scenarioIds()
  Boolean isStateful()
  void scenarioClear()
  Integer totalLoopCount()
  void scenarioRun()
  void initialize(String scenarioName)
  void scenarioExecuteLoop()
  void executeShutdown()
  void scenarioRun(String scenarioName)
  void scenarioRename(String scenarioName, String newName)
  List<Object> scenarioRunInMemory(String domainName)
  // Test Data Cases
  void testDataCaseAdd(String pathAndFileName, String categoryName, String caseName, Boolean excludeRules,
                       Boolean excludeQueries, List<String> ruleFileNames, List<String> queryFileNames);
  void testDataRulesAdd(String pathAndFileName);
  void testDataQueriesAdd(String pathAndFileName);
  // Domain Commands
  String primaryDomain()
  List<String> domains()
  void domainSetLoopCount(String domainName, String loopCount)
  void domainSetRandomLoopCount(String domainName, String loopType, Long minRange, Long maxRange, Integer randomSeed)
  void domainAdd(String domainName, Boolean primary)
  void domainRemove(String domainName)
  void domainsRemove()
  // Domain Parameters
  String domainParameterGet(String domainName, String parameterName)
  void domainParameterSet(String domainName, String parameterName, String value)
  // Domain Parents
  void domainParentAdd(String parentName, String sourceName)
  void domainParentRemove(String sourceName)
  String domainParent(String domainName)
  void domainSiblingAdd(String siblingName, String sourceName)
  void domainSiblingRemove(String siblingName)
  List<String> domainSiblings(String domainName)
  void domainRename(String domainName, String newName)
  // Attribute Commands
  List<String> attributes(String domainName)
  void attributeAdd(String attributeName) 
  String genRocketAttributeName(String attributeName) 
  void attributesAdd(String domainName, List<String> attributeNames) 
  void attributeRemove(String attributeName) 
  void attributeVisibleSet(String attributeName, Boolean visible) 
  void attributePercentValueSet(String attributeName, Integer percent, String value) 
  void attributesRemove(String domainName)
  void attributeRename(String attributeName, String newName)
  // Generator Commands
  List<String> generators(String attributeName)
  Integer generatorAdd(String attributeName, String generatorName, Boolean setLoop, Map<String, Object> requiredGeneratorParameters)
  void generatorReplace(String attributeName, String generatorName, Integer position, Boolean setLoop, Map<String, Object> requiredGeneratorParameters)
  String generatorType(String attributeName, String generatorName)
  void generatorRemove(String attributeName, Integer generatorPosition)
  void generatorsRemove(String attributeName)
  // Generator Parameter Commands
  Object generatorParameterGet(String attributeName, Integer generatorPosition, String parameterName)
  Map<String, String> generatorParametersGet(String attributeName, Integer generatorPosition)
  void generatorParameterSet(String attributeName, Integer generatorPosition, String parameterName, Object value)
  void generatorParametersSet(String attributeName, Integer generatorPosition, Map<String, Object> parameterMap)
  // Receiver Commands
  List<String> receivers(String domainName)
  List<String> receiversClass(String domainName)
  void receiverEnable(String domainName, String receiverName, Boolean enable, String enableReference)
  void receiverAdd(String domainName, String canonicalName, String receiverName, Map<String, String> parameterMap)
  void receiverAddData(String domainName, String receiverName, String data)
  void receiverRemove(String domainName, String receiverName)
  void receiversRemove(String domainName)
  void receiverParameterSet(String domainName, String receiverName, String parameterName, String value)
  void receiverParametersSet(String domainName, String receiverName, Map<String, String> parameterMap)
  void receiverRename(String domainName, String receiverName, String newName)
  String receiverParameterGet(String domainName, String receiverName, String parameterName)
  Map<String, String> receiverParametersGet(String domainName, String receiverName)
  // Receiver PropertyKey Commands
  String receiverPropertyKeyValueGet(String attributeName, String receiverName, String propertyKeyName)
  void receiverPropertyKeyValueSet(String attributeName, String receiverName, String propertyKeyName, String value)
  void receiverPropertyKeyValuesSet(String attributeName, String receiverName, Map<String, String> propertyKeyMap)
}
