platyPS icon indicating copy to clipboard operation
platyPS copied to clipboard

Should platyPS support/document Validation Sets?

Open SPMatthewMcD opened this issue 3 years ago • 6 comments

I noticed in my latest build that Validation sets are not enumerated.

Should they be? I ended up adding the enumeration myself to the Region parameter here: https://github.com/SpanningCloudApps/SB365-Powershell/blob/master/docs/Get-SpanningAuthentication.md

Thanks

SPMatthewMcD avatar Feb 17 '22 12:02 SPMatthewMcD

PowerShell does not provide a way to discover the validations so there is no way for PlatyPS to do that.

You have to document the validations manually in the description of the parameter.

sdwheeler avatar Feb 22 '22 18:02 sdwheeler

Thanks for the response.

SPMatthewMcD avatar Feb 22 '22 20:02 SPMatthewMcD

@sdwheeler I just checked my Pester scripts and they have access to the Function Validation Sets. They are also mentioned in the 2.0 schema doc. platyPS.schema.md I started wading through the code but got lost. Not sure how the module is getting the Function information and what the difference is between PlatyPS and my Pester test. I load the module functions and then call: $Function.Parameters.{$paramName}.Attributes.validvalues to get the enumeration.

SPMatthewMcD avatar Feb 22 '22 23:02 SPMatthewMcD

Interesting and worth further research. There are several types of validation (range, enums, count, pattern, and script). So we would have to consider how to handle each type.

sdwheeler avatar Feb 25 '22 20:02 sdwheeler

Understood, thanks. I'll try and dig in to see if I can contribute.

SPMatthewMcD avatar Feb 25 '22 21:02 SPMatthewMcD

You can get the parameter attributes by using Get-Command. Here is an example getting the ValidValues property of the ValidateSetAttribute for the Get-Help -Category parameter.

(Get-Command Get-Help).Parameters['Category'].Attributes | ? { $_.GetType().Name -like "Validate*" } | select -ExpandProperty ValidValues

Alias
Cmdlet
Provider
General
FAQ
Glossary
HelpFile
ScriptCommand
Function
Filter
ExternalScript
All
DefaultHelp
DscResource
Class
Configuration

PlatyPS seems to handle Accepted values if its defined in the markdown help but I didn't find where it populates those values when building the markdown help.

ThomasNieto avatar May 08 '23 03:05 ThomasNieto