docs: function(propertyName, required, argumentName, alias, dataType, type, defaultValue, allowedValues, regularExpression)  {
       if(!propertyName) {
          throw new Error("'propertyName' parameter not defined.");
      }
      
      if(required === undefined || required === null) {
          throw new Error("'required' parameter not defined.");
      }
  
      if(type !== CommandLineArgumentTypes.KEYVALUE && type !== CommandLineArgumentTypes.VALUE) {
          throw new Error("'type' parameter invalid.");
      }    
  
  
      if(!argumentName && type === CommandLineArgumentTypes.KEYVALUE) {
          throw new Error("'argumentName' parameter not defined.");
      }    
  
      if(allowedValues && Array.isArray(allowedValues) === false) {
          throw new Error("'allowedValues' parameter should be an array.");
          
      }
  
      this.propertyName = propertyName;
      this.required = Boolean(required);
      this.argumentName = argumentName;
      this.alias = (alias !== undefined) ? alias : null;
      this.dataType = dataType ? dataType : CommandLineArgumentDataTypes.STRING;
      this.type = type;
      this.defaultValue = defaultValue;
      this.allowedValues = allowedValues ? allowedValues : null;
      this.regularExpression = regularExpression ? regularExpression : null;
  }