Current objects
The following is a list of the current objects base for Inputs, Outputs and Validations. Do note that some are provided in different GitHub repositories (the main repository for nAttrMon is openaf/nattrmon):
Inputs
| Type | Name | Repository | Category | 
|---|---|---|---|
| Input | nInput_AFPing | openaf/nattrmon-configs | RAID | 
| Input | nInput_BPMDebugChecks | openaf/nattrmon-configs | RAID | 
| Input | nInput_CBPMDebugChecks | openaf/nattrmon-configs | RAID | 
| Input | nInput_CBPMSemaphores | openaf/nattrmon-configs | RAID | 
| Input | nInput_DB | openaf/nattrmon | DB | 
| Input | nInput_EndPoints | openaf/nattrmon | OS | 
| Input | nInput_JMX | openaf/nattrmon | JMX | 
| Input | nInput_FMSRuleStatus | openaf/nattrmon-configs | RAID | 
| Input | nInput_Filesystem | openaf/nattrmon | OS | 
| Input | nInput_FilesystemCount | openaf/nattrmon | OS | 
| Input | nInput_HTTPJson | openaf/nattrmon | OS | 
| Input | nInput_IMAbnormalLoadings | openaf/nattrmon-configs | RAID | 
| Input | nInput_IMLoadingsProgress | openaf/nattrmon-configs | RAID | 
| Input | nInput_IMMemory | openaf/nattrmon-configs | RAID | 
| Input | nInput_Kube_Events | openaf/nattrmon | Kubernetes | 
| Input | nInput_LogErrorAgg | openaf/nattrmon | OS | 
| Input | nInput_OSInfo | openaf/nattrmon | OS | 
| Input | nInput_RAIDMemory | openaf/nattrmon-configs | RAID | 
| Input | nInput_RunningFlows | openaf/nattrmon-configs | RAID | 
| Input | nInput_Semaphores | openaf/nattrmon-configs | RAID | 
| Input | nInput_Sessions | openaf/nattrmon-configs | RAID | 
| Input | nInput_Shell | openaf/nattrmon | OS | 
| Input | nInput_Channel | openaf/nattrmon | Input Channel | 
| Input | nInput_RemoteChannel | openaf/nattrmon | Input Channel | 
| Input | nInput_Schedulers | openaf/nattrmon-configs | RAID | 
| Input | nInput_CompareTimes | openaf/nattrmon | OS | 
| Input | nInput_DMPerformance | openaf/nattrmon-configs | RAID | 
| Input | nInput_EndPoints | openaf/nattrmon | OS | 
Outputs
| Type | Name | Repository | Category | 
|---|---|---|---|
| Output | nOutput_AWSCloudWatch | openaf/nattrmon | Output AWSCloudWatch | 
| Output | nOutput_DSV | openaf/nattrmon | Output DSV | 
| Output | nOutput_EmailWarnings | openaf/nattrmon | Output Warning | 
| Output | nOutput_H2 | openaf/nattrmon | Output History | 
| Output | nOutput_HealthZ | openaf/nattrmon | Output HTTP | 
| Output | nOutput_HTTP | openaf/nattrmon | Output HTTP | 
| Output | nOutput_HTTP_Metrics | openaf/nattrmon | Output HTTP | 
| Output | nOutput_HTTP_JSON | openaf/nattrmon | Output HTTP | 
| Output | nOutput_HTTP_Status | openaf/nattrmon | Output HTTP | 
| Output | nOutput_HTMLStatus | openaf/nattrmon | Output HTTP | 
| Output | nOutput_Log | openaf/nattrmon | Output Log | 
| Output | nOutput_NDJson | openaf/nattrmon | Output Log | 
| Output | nOutput_Oracle | openaf/nattrmon | Output History | 
| Output | nOutput_Stdout | openaf/nattrmon | Output Log | 
| Output | nOutput_Channels | openaf/nattrmon | Output Channels | 
| Output | nOutput_RemoteChannel | openaf/nattrmon | Output Channel | 
| Output | nOutput_Notifications | openaf/nattrmon | Output Warnings | 
| Output | nOutput_WarnsHistory | openaf/nattrmon | Output History | 
| Output | nOutput_ES | openaf/nattrmon | Output ES | 
| Output | nOutput_Slack | openaf/nattrmon | Output Slack | 
Validations
| Type | Name | Repository | Category | 
|---|---|---|---|
| Validation | nValidation_Generic | openaf/nattrmon | Validation Generic | 
Object templates
Input object
To build an input object follow the following javascript template:
/**
* <odoc>
* <key>nattrmon.nInput_MyInput(aMap)</key>
* aMap is composed of:\
* - keys (the key of the objects to refer to)
* - chKey (the channel name for the keys of objects to refer to)
* - attrTemplate (a string template for the name of the attribute using )
* </odoc>
*/
var nInput_MyInput = function(aMap) {
  this.params = aMap;
  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";  
  nInput.call(this, this.input);
}
inherit(nInput_MyInput, nInput);
nInput_MyInput.prototype.input = function(scope, args) {
  var ret = {};
  var attrname = templify(this.params.attrTemplate, { name: this.params.name });
  
  ret[attrname] = runSomething();
  return ret;
}
Validation object
To build a validation object follow the following javascript template:
/**
* <odoc>
* <key>nattrmon.nValidation_MyValidation(aMap)</key>
* aMap is composed of:\
* - warnTemplate (a string template for the warning title using )
* - warnDescTemplate (a string template for the warning description )
* </odoc>
*/
var nValidation_MyValidation = function(aMap) {
  this.params = aMap;
  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";
  nValidation.call(this, this.validation);
}
inherit(nValidation_MyValidation, nValidation);
nValidation_MyValidation.prototype.validate = function(scope, args) {
  var ret = [];
  var title = templify(this.params.warnTemplate);
  var description = templify(this.params.warnDescTemplate);
  if (somethingIsWrong)
    ret.push(new nWarning(nWarning.LEVEL_HIGH, title, descripiton));
  else
    this.closeWarning(title);
  ret.push(new nWarning(nWarning.LEVEL_INFO, "A information", "Just for fyi..."));
  return ret;
}
Output object
To build an output object follow the following javascript template:
/**
* <odoc>
* <key>nattrmon.nOutput_MyOutput(aMap)</key>
* aMap is composed of:\
* - inclusionList (a list of attributes to include)
* - chInclusionList (a channel name with attributes to include)
* </odoc>
*/
var nOutput_MyOutput = function(aMap) {
  this.params = aMap;
  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";
  nOutput.call(this, this.output);
}
inherit(nOutput_MyOutput, nOutput);
nOutput_MyOutput.prototype.output = function(scope, args) {
  for(key in scope.getCurrentValues()) {
    ...
  }
}