The Parameter attribute
The Parameter attribute is an optional attribute that you can use to define some of the behaviors of a parameter, such as making a parameter mandatory.
Creating an instance of the Parameter object shows the different properties that can be set:
PS> [Parameter]::new()
ExperimentName                  :
ExperimentAction                : None
Position                        : -2147483648
ParameterSetName                : __AllParameterSets
Mandatory                       : False
ValueFromPipeline               : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments     : False
HelpMessage                     :
HelpMessageBaseName             :
HelpMessageResourceId           :
DontShow                        : False
TypeId                          : System.Management.Automation.Pa…
    A few of these properties should be ignored as they are not intended to be set directly: HelpMessageBaseName, HelpMessageResourceId, and TypeId...