en-US/PoshProject.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-PoshTemplate</command:name>
      <command:verb>Get</command:verb>
      <command:noun>PoshTemplate</command:noun>
      <maml:description>
        <maml:para>`Get-PoshTemplate` cmdlet returns the object of `PoshTemplate` structure that can be used with `Invoke-PoshTemplate` cmdlet.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>`Get-PoshTemplate` cmdlet returns the object of PoshTemplate structure that can be used with `Invoke-PoshTemplate` cmdlet. It returns a default template object if template path is not provided.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-PoshTemplate</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
          <maml:name>TemplatePath</maml:name>
          <maml:Description>
            <maml:para>Pass the PoshTemplate file created with `New-PoshTemplate` cmdlet.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
        <maml:name>TemplatePath</maml:name>
        <maml:Description>
          <maml:para>Pass the PoshTemplate file created with `New-PoshTemplate` cmdlet.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>PoshProject.PoshTemplate</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Note that the template name should be `PoshProjectTemplate.xml` otherwise you will receive an error.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Get-PoshTemplate
ProjectName : PoshProjectTemplate
Directories : PoshProjectTemplate.tests.ps1
Type : Script
Dependencies :
Metadata : PoshProject.Metadata</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 2 --------------------------</maml:title>
        <dev:code>PS C:\&gt; ".\PoshProjectTemplate.xml" | Get-PoshTemplate
ProjectName : MyModule
Directories : MyModule.tests.ps1
Type : Script
Dependencies : psAzD,PSDB
Metadata : PoshProject.Metadata</dev:code>
        <dev:remarks>
          <maml:para>Template file which is created with the `New-PoshTemplate` can be passed to this cmdlet.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Get-PoshTemplate</maml:linkText>
        <maml:uri>https://github.com/IndividualsinDemand/PoshProject/blob/master/docs/Get-PoshTemplate.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Invoke-PoshTemplate</command:name>
      <command:verb>Invoke</command:verb>
      <command:noun>PoshTemplate</command:noun>
      <maml:description>
        <maml:para>`Invoke-PoshTemplate` cmdlet creates the project folders and files defined in the `PoshTemplate` generated by `New-PoshTemplate` cmdlet.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>`Invoke-PoshTemplate` cmdlet creates the project folders and files defined in the `PoshProjectTemplate.xml` created by `New-PoshTemplate` cmdlet. Additionaly you can also pass the template object from `Get-PoshTemplate` for project scaffolding.</maml:para>
      <maml:para>Install dependencies when you are working in the project by passing the template object and specifying `CustomInstall` switch.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Invoke-PoshTemplate</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>CustomInstall</maml:name>
          <maml:Description>
            <maml:para>Specify this parameter and pass the template object from `Get-PoshTemplate` cmdlet to install the dependencies.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="named" aliases="none">
          <maml:name>TemplateObject</maml:name>
          <maml:Description>
            <maml:para>Pass the template object from `Get-PoshTemplate` cmdlet.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">PoshTemplate</command:parameterValue>
          <dev:type>
            <maml:name>PoshTemplate</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Invoke-PoshTemplate</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
          <maml:name>TemplatePath</maml:name>
          <maml:Description>
            <maml:para>Pass the template file to invoke the project folder structure.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InstallDependencies</maml:name>
          <maml:Description>
            <maml:para>Pass the template or template object to install the dependencies.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Invoke-PoshTemplate</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>InstallDependencies</maml:name>
          <maml:Description>
            <maml:para>Pass the template or template object to install the dependencies.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="named" aliases="none">
          <maml:name>TemplateObject</maml:name>
          <maml:Description>
            <maml:para>Pass the template object from `Get-PoshTemplate` cmdlet.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">PoshTemplate</command:parameterValue>
          <dev:type>
            <maml:name>PoshTemplate</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>CustomInstall</maml:name>
        <maml:Description>
          <maml:para>Specify this parameter and pass the template object from `Get-PoshTemplate` cmdlet to install the dependencies.</maml:para>
        </maml:Description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>InstallDependencies</maml:name>
        <maml:Description>
          <maml:para>Pass the template or template object to install the dependencies.</maml:para>
        </maml:Description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="named" aliases="none">
        <maml:name>TemplateObject</maml:name>
        <maml:Description>
          <maml:para>Pass the template object from `Get-PoshTemplate` cmdlet.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">PoshTemplate</command:parameterValue>
        <dev:type>
          <maml:name>PoshTemplate</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
        <maml:name>TemplatePath</maml:name>
        <maml:Description>
          <maml:para>Pass the template file to invoke the project folder structure.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>PoshProject.PoshTemplate</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Note that the template name should be `PoshProjectTemplate.xml` otherwise you will receive an error.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Invoke-PoshTemplate -TemplatePath .\PoshProjectTemplate.xml
[+] Creating Project
[+] Creating Project Directory
[+] Creating Root Module
[+] Creating Module Manifest
[+] Creating Pester Tests File</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 2 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Invoke-PoshTemplate -TemplateObject (Get-PoshTemplate -TemplatePath .\PoshProjectTemplate.xml)
[+] Creating Project
[+] Creating Project Directory
[+] Creating Root Module
[+] Creating Module Manifest
[+] Creating Pester Tests File</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 3 --------------------------</maml:title>
        <dev:code>PS C:\&gt; ".\PoshProjectTemplate.xml" | Get-PoshTemplate | Invoke-PoshTemplate
[+] Creating Project
[+] Creating Project Directory
[+] Creating Root Module
[+] Creating Module Manifest
[+] Creating Pester Tests File</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 4 --------------------------</maml:title>
        <dev:code>PS C:\&gt; $template = Get-PoshTemplate ".\PoshProjectTemplate.xml"
# This is required as dependencies is of type string. If not specified then the modules will be considered as a single name or entry
PS C:\&gt; $template.Dependencies = @("Az.Accounts", "Az.KeyVault") -join ","
PS C:\&gt; Invoke-PoshTemplate -TemplateObject $template -CustomInstall
[+] Installing Az.Accounts
[+] Successfully installed: Az.Accounts
[+] Installing Az.KeyVault
[+] Successfully installed: Az.KeyVault</dev:code>
        <dev:remarks>
          <maml:para>Run `Test-PoshTemplate` to validate the template before invoking this function.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Invoke-PoshTemplate</maml:linkText>
        <maml:uri>https://github.com/IndividualsinDemand/PoshProject/blob/master/docs/Invoke-PoshTemplate.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-PoshTemplate</command:name>
      <command:verb>New</command:verb>
      <command:noun>PoshTemplate</command:noun>
      <maml:description>
        <maml:para>`New-PoshTemplate` cmdlet creates an xml template file for passed configuration or for a project name.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>`New-PoshTemplate` cmdlet creates an xml template file for passed configuration or for a project name. This cmdlet helps you to define your project name, PowerShell manifest file mandatory details and custom directories for your project. It allows three types of project types, `Script`, `Module` and `Binary`. All the defined files and folders are created based on this.</maml:para>
      <maml:para>You can use this for creating any folder structure and you have to specify `Module` to create the folders. By default it will create a set of predefined folders and files for all these types.</maml:para>
      <maml:para>The template name should be `PoshProjectTemplate.xml` and any change to this name will return error.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-PoshTemplate</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
          <maml:name>ProjectName</maml:name>
          <maml:Description>
            <maml:para>Name of your project.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="1" aliases="none">
          <maml:name>FilePath</maml:name>
          <maml:Description>
            <maml:para>Provide the path to create template file. If not provided the template file will be created in present working directory.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Author</maml:name>
          <maml:Description>
            <maml:para>Module author name. This will be used to created module manifest file.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DependsOn</maml:name>
          <maml:Description>
            <maml:para>Project dependencies. Provide the external module names that your project depends on.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Description</maml:name>
          <maml:Description>
            <maml:para>Provide the description of your project.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Directories</maml:name>
          <maml:Description>
            <maml:para>Array of directories to be created as a part of the project. By default it will create a predefined folders and files based on the Project Type.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Guid</maml:name>
          <maml:Description>
            <maml:para>Guid of the project/module.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
          <dev:type>
            <maml:name>Guid</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>License</maml:name>
          <maml:Description>
            <maml:para>Type of License.</maml:para>
          </maml:Description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">MIT</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Apache</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>ProjectType</maml:name>
          <maml:Description>
            <maml:para>Type of the project.</maml:para>
          </maml:Description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Script</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Module</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Binary</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Tags</maml:name>
          <maml:Description>
            <maml:para>Define tags to identify your project.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Version</maml:name>
          <maml:Description>
            <maml:para>Provide the version number for your module.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Author</maml:name>
        <maml:Description>
          <maml:para>Module author name. This will be used to created module manifest file.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DependsOn</maml:name>
        <maml:Description>
          <maml:para>Project dependencies. Provide the external module names that your project depends on.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Description</maml:name>
        <maml:Description>
          <maml:para>Provide the description of your project.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Directories</maml:name>
        <maml:Description>
          <maml:para>Array of directories to be created as a part of the project. By default it will create a predefined folders and files based on the Project Type.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="1" aliases="none">
        <maml:name>FilePath</maml:name>
        <maml:Description>
          <maml:para>Provide the path to create template file. If not provided the template file will be created in present working directory.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Guid</maml:name>
        <maml:Description>
          <maml:para>Guid of the project/module.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Guid</command:parameterValue>
        <dev:type>
          <maml:name>Guid</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>License</maml:name>
        <maml:Description>
          <maml:para>Type of License.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
        <maml:name>ProjectName</maml:name>
        <maml:Description>
          <maml:para>Name of your project.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>ProjectType</maml:name>
        <maml:Description>
          <maml:para>Type of the project.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Tags</maml:name>
        <maml:Description>
          <maml:para>Define tags to identify your project.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Version</maml:name>
        <maml:Description>
          <maml:para>Provide the version number for your module.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Note that the template name should be `PoshProjectTemplate.xml` otherwise you will receive an error.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; "MyNewModule" | New-PoshTemplate</dev:code>
        <dev:remarks>
          <maml:para>Creates a PoshTemplate file populated with project settings.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>New-PoshTemplate</maml:linkText>
        <maml:uri>https://github.com/IndividualsinDemand/PoshProject/blob/master/docs/Invoke-PoshTemplate.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-PoshTemplate</command:name>
      <command:verb>Test</command:verb>
      <command:noun>PoshTemplate</command:noun>
      <maml:description>
        <maml:para>`Test-PoshTemplate` cmdlet is intended to test the PoshTemplate file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>`Test-PoshTemplate` cmdlet helps you to test the PoshTemplate file and reports if the template is valid or not. An invalid template error will be thrown if the `Guid` in the template is invalid. If the `Guid` tag is removed from the template, the validation will be passed as the tamplate object automatically creates a dummy `Guid` and maps it with the `PoshTemplate` object.</maml:para>
      <maml:para>Tags not included in template validation are 1. Dependencies 2. License.</maml:para>
      <maml:para>Template name should be `PoshProjectTemplate.xml` otherwise you will receive an error.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-PoshTemplate</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
          <maml:name>TemplatePath</maml:name>
          <maml:Description>
            <maml:para>Provide the path to template file.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none">
        <maml:name>TemplatePath</maml:name>
        <maml:Description>
          <maml:para>Provide the path to template file.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>PoshProject.PoshTemplate</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Note that the template name should be `PoshProjectTemplate.xml` otherwise you will receive an error.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Test-PoshTemplate -TemplatePath .\PoshProjectTemplate.xml
[+] Error Count: 0
[+] Valid Template</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 2 --------------------------</maml:title>
        <dev:code>PS C:\&gt; "\PoshProjectTemplate.xml" | Test-PoshTemplate
[-] &lt;ProjectName&gt; is empty
[-] &lt;Directories&gt; are empty
[-] &lt;Type&gt; is empty
[-] Invalid path: 'C:\MyNewModule.ps1'
[-] Invalid root module name: 'MyNewModule.psm'
[-] Error Count: 5
[-] Template validation failed</dev:code>
        <dev:remarks>
          <maml:para>If there is any empty field except `Dependencies` and `License` this cmdlet will fail the validation. It checks for each tag in the xml and validates `Guid` too. If `Guid` is found to be invalid, an Invalid Template error will be thrown.</maml:para>
          <maml:para>Any change in the template name will return in error.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Test-PoshTemplate</maml:linkText>
        <maml:uri>https://github.com/IndividualsinDemand/PoshProject/blob/master/docs/Test-PoshTemplate.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>