Resources/Vault/plasterManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<plasterManifest schemaVersion="1.1" templateType="Project"
    xmlns="http://www.microsoft.com/schemas/PowerShell/Plaster/v1">
 
    <!-- MetaData -->
    <metadata>
        <name>Catesta</name>
        <id>d531e058-52b8-4dd2-8162-01c95d1eb8f7</id>
        <version>2.4.0</version>
        <title>Catesta</title>
        <description>Scaffolds a new PowerShell SecretManagement extension vault module project</description>
        <author>Jake Morrison</author>
        <tags>PowerShell,Template,SecretManagement,VaultExtension,Secret,module</tags>
    </metadata>
 
    <!-- Parameters -->
    <parameters>
        <!-- Module differentiator -->
        <parameter name='VAULT' type='text' prompt='VAULT'/>
        <!-- Standard Parameter Prompts -->
        <parameter name='ModuleName' type='text' prompt='Enter the name of the extension vault project. (It is a community best practice that vault project names start with: SecretManagement. Example: SecretManagement.MyVault)'/>
        <parameter name='Description' type='text' prompt='Enter a description for the extension vault project'/>
        <parameter name='Version' type='text' prompt='Enter the version number of the extension vault project' default='0.0.1'/>
        <parameter name='FN' type='user-fullname' store='text' prompt='Enter your full name'/>
        <!-- CI/CD -->
        <!-- CI/CD -->
        <parameter name='CICD' type='choice' default='0' store='text' prompt='Which CICD tool will you use to build and deploy your project?'>
            <choice label='&amp;Module Only' help='Does not add CI/CD process files. Vault scaffolding only.' value='NONE'/>
            <choice label='&amp;GitHub Actions' help='CI/CD using GitHub Actions.' value='GITHUB'/>
            <choice label='AWS &amp;CodeBuild' help='CI/CD using AWS CodeBuild' value='CODEBUILD'/>
            <choice label='Ap&amp;pveyor' help='CI/CD using AWS Appveyor' value='APPVEYOR'/>
            <choice label='Git&amp;Lab CI/CD' help='CI/CD using GitLab CI/CD' value='GITLAB'/>
            <choice label='&amp;BitBucket Pipelines' help='CI/CD using BitBucket Pipelines' value='BITBUCKET'/>
            <choice label='&amp;Azure Pipelines' help='CI/CD using Azure Pipelines' value='AZURE'/>
        </parameter>
        <!-- _________ CI/CD Sub-choices -->
        <!-- ___________________________GitHub Actions -->
        <parameter condition="$PLASTER_PARAM_CICD -eq 'GITHUB'" name='GitHubAOptions' type='multichoice' default='0' store='text' prompt='Select desired workflow action options? (If your project is cross-platform you should select multiple)'>
            <choice label='&amp;Windows - PowerShell' help="Adds a Windows PowerShell based Workflow action." value="windows"/>
            <choice label='&amp;Core (Windows)- pwsh' help="Adds a Windows pwsh based pipeline job." value="pwshcore"/>
            <choice label='&amp;Linux' help="Adds a Linux based Workflow action." value="linux"/>
            <choice label='&amp;MacOS' help="Adds a MacOS based Workflow action." value="macos"/>
        </parameter>
        <!-- ___________________________AWS -->
        <parameter condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD'" name='AWSOptions' type='multichoice' default='0' store='text' prompt='Select desired buildspec file options? (If your project is cross-platform you should select multiple)' >
            <choice label='&amp;Windows - PowerShell' help='Adds a Windows PowerShell focused buildspec.yml for Windows CodeBuild.' value='ps'/>
            <choice label='&amp;Core (Windows)- pwsh' help='Adds a pwsh focused buildspec.yml for Windows CodeBuild.' value='pwshcore'/>
            <choice label='&amp;Linux - pwsh' help='Adds a pwsh focused buildspec.yml for Linux CodeBuild.' value='pwsh'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD'" name='S3Bucket' type='text' prompt='Enter S3 bucket name to download needed PS modules from S3 location. Leave blank to default to PSGallery.' default='PSGallery'/>
        <!-- ___________________________Appveyor -->
        <parameter condition="$PLASTER_PARAM_CICD -eq 'APPVEYOR'" name='AppveyorOptions' type='multichoice' default='0' store='text' prompt='Select desired Appveyor build environment options? (If your project is cross-platform you should select multiple)'>
            <choice label='&amp;Windows - PowerShell' help='Adds a Windows PowerShell focused build on a Windows image.' value='windows'/>
            <choice label='&amp;Core (Windows)- pwsh' help='Adds a pwsh focused build on a Windows image.' value='pwshcore'/>
            <choice label='&amp;Linux - pwsh' help='Adds a pwsh focused build for a Linux image.' value='linux'/>
            <choice label='&amp;MacOS - pwsh' help='Adds a pwsh focused build for a MacOS image.' value='macos'/>
        </parameter>
        <!-- ___________________________GitLab CI/CD-->
        <parameter condition="$PLASTER_PARAM_CICD -eq 'GITLAB'" name='GitLabOptions' type='multichoice' default='0' store='text' prompt='Select desired GitLab build environment options? (If your project is cross-platform you should select multiple)'>
            <choice label='&amp;Windows - PowerShell' help='Adds a Windows PowerShell focused build on a Windows image.' value='windows'/>
            <choice label='&amp;Core (Windows)- pwsh' help='Adds a pwsh focused build on a Windows image.' value='pwshcore'/>
            <choice label='&amp;Linux - pwsh' help='Adds a pwsh focused build for a Linux image.' value='linux'/>
        </parameter>
        <!-- ___________________________BitBucket Pipelines -->
        <!-- Linux Only - no options for BitBucket -->
        <!-- ___________________________Azure Pipelines -->
        <parameter condition="$PLASTER_PARAM_CICD -eq 'AZURE'" name='AzureOptions' type='multichoice' default='0' store='text' prompt='Select desired Azure pipeline job options?'>
            <choice label='&amp;Windows - PowerShell' help='Adds a Windows PowerShell focused job on a Windows image.' value='windows'/>
            <choice label='&amp;Core (Windows)- pwsh' help='Adds a pwsh focused job on a Windows image.' value='pwshcore'/>
            <choice label='&amp;Linux - pwsh' help='Adds a pwsh focused job for a Linux image.' value='linux'/>
            <choice label='&amp;MacOS - pwsh' help='Adds a pwsh focused job for a MacOS image.' value='macos'/>
        </parameter>
 
        <!-- Repository Questions -->
        <parameter name='RepoType' type='choice' default='0' store='text' prompt='Which service will host this projects code repository?'>
            <choice label='&amp;None' help='Does not add any repository files.' value='NONE'/>
            <choice label='&amp;GitHub' help='Hosted on GitHub.' value='GITHUB'/>
            <choice label='AWS &amp;CodeCommit' help='Hosted on AWS CodeCommit.' value='CODECOMMIT'/>
            <choice label='Git&amp;Lab' help='Hosted on GitLab.' value='GITLAB'/>
            <choice label='&amp;BitBucket' help='Hosted on BitBucket.' value='BITBUCKET'/>
            <choice label='&amp;Azure Repos' help='Hosted on Azure Repos.' value='AZURE'/>
        </parameter>
        <!-- _________ Repository Sub-choices -->
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='License' type='choice' default='0' store='text' prompt='Select a License for your module. (Help deciding: https://choosealicense.com/)'>
            <choice label='&amp;MIT' help='Adds a MIT License file.' value='MIT'/>
            <choice label='&amp;Apache' help='Adds an Apache License file.' value='Apache'/>
            <choice label='&amp;GNU' help='Adds a GNU GENERAL PUBLIC LICENSE file.' value='GNU'/>
            <choice label='&amp;ISC' help='Adds an ISC License file.' value='ISC'/>
            <choice label='&amp;None' help='Does not add a License file.' value='NONE'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='Changelog' type='choice' default='0' store='text' prompt='Would you like to generate a Changelog file?'>
            <choice label='&amp;Changelog' help='Adds a Changelog file.' value='CHANGELOG'/>
            <choice label='&amp;None' help='Does not add a Changelog file.' value='NONE'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='COC' type='choice' default='0' store='text' prompt='Would you like to generate a Code of Conduct file?'>
            <choice label='&amp;Conduct' help='Adds a Code of Conduct file.' value='CONDUCT'/>
            <choice label='&amp;None' help='Does not add a Conduct file.' value='NONE'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='Contribute' type='choice' default='0' store='text' prompt='Would you like to generate a Contributing guidelines file?'>
            <choice label='&amp;Contribute' help='Adds a Contributing file.' value='CONTRIBUTING'/>
            <choice label='&amp;None' help='Does not add a Contributing file.' value='NONE'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='Security' type='choice' default='0' store='text' prompt='Would you like to generate a Security policy file?'>
            <choice label='&amp;Security' help='Adds a Security policy file.' value='SECURITY'/>
            <choice label='&amp;None' help='Does not add a Security policy file.' value='NONE'/>
        </parameter>
        <!-- _________ Read the Docs integration -->
        <parameter condition="$PLASTER_PARAM_RepoType -ne 'NONE'" name='ReadtheDocs' type='choice' default='0' store='text' prompt='Would you like to generate files to integrate with Read the Docs?'>
            <choice label='&amp;Read the Docs' help='Adds files for integrating your project with Read the Docs.' value='READTHEDOCS'/>
            <choice label='&amp;None' help='Does not add Read the Docs integration files.' value='NONE'/>
        </parameter>
        <parameter condition="$PLASTER_PARAM_ReadtheDocs -eq 'READTHEDOCS'" name='RTDTheme' type='choice' default='0' store='text' prompt='Which theme would you like to use for Read the Docs?'>
            <choice label='&amp;Default readthedocs theme' help='Creates Read the Docs integration with default readthedocs theme.' value='READTHEDOCSTHEME'/>
            <choice label='&amp;Material theme' help='Creates Read the Docs integration with the material theme.' value='MATERIALTHEME'/>
        </parameter>
        <!-- Coding Style -->
        <parameter name='CodingStyle' type='choice' default='0' store='text' prompt='Would you like to specify a coding style for the project?'>
            <choice label='&amp;Stroustrup' help='Sets Stroustrup as the preferred coding style.' value='Stroustrup'/>
            <choice label='&amp;OTBS' help='Sets OTBS as the preferred coding style.' value='OTBS'/>
            <choice label='&amp;Allman' help='Sets Allman as the preferred coding style.' value='Allman'/>
            <choice label='&amp;None' help='No coding style is set for the project.' value='NONE'/>
        </parameter>
        <!-- Pester -->
        <parameter name='Pester' type='choice' default='0' store='text' prompt='Which version of Pester would you like to use?'>
            <choice label='&amp;5' help='Pester version 5' value='5'/>
            <choice label='&amp;4' help='Pester version 4' value='4'/>
        </parameter>
    </parameters>
 
    <!-- Content -->
    <content>
        <!-- Intro Messages -->
        <message>
            &#10;&#10;Scaffolding your SecretManagement extension vault project with the following options:
            &#09;CICD: '$PLASTER_PARAM_CICD'
            &#09;Repo: '$PLASTER_PARAM_RepoType'
            &#09;CodingStyle: '$PLASTER_PARAM_CodingStyle'
            &#09;Pester: '$PLASTER_PARAM_Pester'
        </message>
 
        <!-- Create destination folder structure -->
        <file source='' destination='docs'/>
        <file source='' destination='media'/>
        <file source='' destination='src'/>
        <file source='' destination='src\Archive'/>
        <file source='' destination='src\Artifacts'/>
        <file source='' destination='src\Tests'/>
        <file source='' destination='src\Tests\Integration'/>
        <file source='' destination='src\Tests\Unit'/>
        <file source='' destination='src\${PLASTER_PARAM_ModuleName}'/>
 
        <!-- Vault Files -->
        <templateFile source='..\Vault\src\PSVault\PSVault.Extension\PSVault.Extension.psd1' destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.Extension\${PLASTER_PARAM_ModuleName}.Extension.psd1' />
        <file source='..\Vault\src\PSVault\PSVault.Extension\PSVault.Extension.psm1' destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.Extension\${PLASTER_PARAM_ModuleName}.Extension.psm1' />
 
        <templateFile source='..\Vault\src\PSVault.build.ps1' destination='src\${PLASTER_PARAM_ModuleName}.build.ps1'/>
        <file source='..\Vault\src\PSVault.Settings.ps1' destination='src\${PLASTER_PARAM_ModuleName}.Settings.ps1'/>
        <file source='..\Vault\src\PSScriptAnalyzerSettings.psd1' destination='src\PSScriptAnalyzerSettings.psd1'/>
 
        <templateFile source='..\Vault\src\PSVault\PSVault.psm1' destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.psm1'/>
 
        <!-- VSCode files -->
        <templateFile source='..\Editor\VSCode\tasks.json' destination='.vscode\tasks.json' />
        <file source='..\Editor\VSCode\extensions.json' destination='.vscode\extensions.json' />
        <templateFile source='..\Editor\VSCode\settings.json' destination='.vscode\settings.json' />
 
        <!-- Pester -->
        <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Vault\src\Tests\v4\Unit\PSVault-Module.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Module.Tests.ps1' />
        <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Vault\src\Tests\v4\Unit\ExportedFunctions.Tests.ps1' destination='src\Tests\Unit\ExportedFunctions.Tests.ps1' />
        <templateFile condition="$PLASTER_PARAM_Pester -eq '4'" source='..\Vault\src\Tests\v4\Unit\Module-Function.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Function.Tests.ps1' />
 
        <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Vault\src\Tests\v5\Unit\PSVault-Module.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Module.Tests.ps1' />
        <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Vault\src\Tests\v5\Unit\ExportedFunctions.Tests.ps1' destination='src\Tests\Unit\ExportedFunctions.Tests.ps1' />
        <templateFile condition="$PLASTER_PARAM_Pester -eq '5'" source='..\Vault\src\Tests\v5\Unit\Module-Function.Tests.ps1' destination='src\Tests\Unit\${PLASTER_PARAM_ModuleName}-Function.Tests.ps1' />
 
        <!-- Repo -->
        <!-- _________gitignore -->
        <file condition="$PLASTER_PARAM_RepoType -ne 'NONE'" source='..\RepoFiles\agitignore' destination='.gitignore' />
        <!-- _________README -->
        <templateFile condition="$PLASTER_PARAM_RepoType -ne 'NONE'" source='..\RepoFiles\README.md' destination='README.md' />
 
        <!-- _________LICENSE -->
        <templateFile condition="$PLASTER_PARAM_License -eq 'MIT'" source='..\RepoFiles\Licences\MITLICENSE' destination='LICENSE' />
        <templateFile condition="$PLASTER_PARAM_License -eq 'Apache'" source='..\RepoFiles\Licences\APACHELICENSE' destination='LICENSE' />
        <templateFile condition="$PLASTER_PARAM_License -eq 'GNU'" source='..\RepoFiles\Licences\GNULICENSE' destination='LICENSE' />
        <templateFile condition="$PLASTER_PARAM_License -eq 'ISC'" source='..\RepoFiles\Licences\ISCLICENSE' destination='LICENSE' />
 
        <!-- _________CHANGELOG -->
        <templateFile condition="$PLASTER_PARAM_Changelog -eq 'CHANGELOG'" source='..\RepoFiles\CHANGELOG.md' destination='docs\CHANGELOG.md' />
 
        <!-- _________CodeCommit -->
        <!-- ________________________Code of Conduct -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'CODECOMMIT' -and $PLASTER_PARAM_COC -eq 'CONDUCT'" source='..\RepoFiles\CODE_OF_CONDUCT.md' destination='CODE_OF_CONDUCT.md' />
        <!-- ________________________Contribute -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'CODECOMMIT' -and $PLASTER_PARAM_Contribute -eq 'CONTRIBUTING'" source='..\RepoFiles\CONTRIBUTING.md' destination='CONTRIBUTING.md' />
        <!-- ________________________Security -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'CODECOMMIT' -and $PLASTER_PARAM_Security -eq 'SECURITY'" source='..\RepoFiles\SECURITY.md' destination='SECURITY.md' />
        <!-- ________________________Templates -->
        <!-- //N/A _______________________________ -->
 
        <!-- _________GitHub -->
        <!-- ________________________Code of Conduct -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITHUB' -and $PLASTER_PARAM_COC -eq 'CONDUCT'" source='..\RepoFiles\CODE_OF_CONDUCT.md' destination='.github\CODE_OF_CONDUCT.md' />
        <!-- ________________________Contribute -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'GITHUB' -and $PLASTER_PARAM_Contribute -eq 'CONTRIBUTING'" source='..\RepoFiles\CONTRIBUTING.md' destination='.github\CONTRIBUTING.md' />
        <!-- ________________________Security -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'GITHUB' -and $PLASTER_PARAM_Security -eq 'SECURITY'" source='..\RepoFiles\SECURITY.md' destination='.github\SECURITY.md' />
        <!-- ________________________Templates -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITHUB'" source='..\GitHubFiles\PULL_REQUEST_TEMPLATE.md' destination='.github\PULL_REQUEST_TEMPLATE.md'/>
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITHUB'" source='..\GitHubFiles\ISSUE_TEMPLATE\bug-report.md' destination='.github\ISSUE_TEMPLATE\bug-report.md'/>
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITHUB'" source='..\GitHubFiles\ISSUE_TEMPLATE\feature_request.md' destination='.github\ISSUE_TEMPLATE\feature_request.md'/>
 
        <!-- _________Azure Repos -->
        <!-- ________________________Code of Conduct -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'AZURE' -and $PLASTER_PARAM_COC -eq 'CONDUCT'" source='..\RepoFiles\CODE_OF_CONDUCT.md' destination='CODE_OF_CONDUCT.md' />
        <!-- ________________________Contribute -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'AZURE' -and $PLASTER_PARAM_Contribute -eq 'CONTRIBUTING'" source='..\RepoFiles\CONTRIBUTING.md' destination='CONTRIBUTING.md' />
        <!-- ________________________Security -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'AZURE' -and $PLASTER_PARAM_Security -eq 'SECURITY'" source='..\RepoFiles\SECURITY.md' destination='SECURITY.md' />
        <!-- ________________________Templates -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'AZURE'" source='..\AzureRepoFiles\pull_request_template.md' destination='.azuredevops\pull_request_template.md' />
 
        <!-- _________BitBucket -->
        <!-- ________________________Code of Conduct -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'BITBUCKET' -and $PLASTER_PARAM_COC -eq 'CONDUCT'" source='..\RepoFiles\CODE_OF_CONDUCT.md' destination='CODE_OF_CONDUCT.md' />
        <!-- ________________________Contribute -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'BITBUCKET' -and $PLASTER_PARAM_Contribute -eq 'CONTRIBUTING'" source='..\RepoFiles\CONTRIBUTING.md' destination='CONTRIBUTING.md' />
        <!-- ________________________Security -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'BITBUCKET' -and $PLASTER_PARAM_Security -eq 'SECURITY'" source='..\RepoFiles\SECURITY.md' destination='SECURITY.md' />
        <!-- ________________________Templates -->
        <!-- //N/A _______________________________ -->
 
        <!-- _________GitLab -->
        <!-- ________________________Code of Conduct -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITLAB' -and $PLASTER_PARAM_COC -eq 'CONDUCT'" source='..\RepoFiles\CODE_OF_CONDUCT.md' destination='CODE_OF_CONDUCT.md' />
        <!-- ________________________Contribute -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'GITLAB' -and $PLASTER_PARAM_Contribute -eq 'CONTRIBUTING'" source='..\RepoFiles\CONTRIBUTING.md' destination='CONTRIBUTING.md' />
        <!-- ________________________Security -->
        <templateFile condition="$PLASTER_PARAM_RepoType -eq 'GITLAB' -and $PLASTER_PARAM_Security -eq 'SECURITY'" source='..\RepoFiles\SECURITY.md' destination='SECURITY.md' />
        <!-- ________________________Templates -->
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITLAB'" source='..\GitLabFiles\issue_templates\bug-report.md' destination='.gitlab\issue_templates\bug-report.md'/>
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITLAB'" source='..\GitLabFiles\issue_templates\feature-request.md' destination='.gitlab\issue_templates\feature-request.md'/>
        <file condition="$PLASTER_PARAM_RepoType -eq 'GITLAB'" source='..\GitLabFiles\merge_request_templates\Default.md' destination='.gitlab\merge_request_templates\Default.md'/>
 
        <!-- _________Read the Docs -->
        <templateFile condition="$PLASTER_PARAM_ReadtheDocs -eq 'READTHEDOCS'" source='..\Read_the_Docs\index.md' destination='docs\index.md' />
        <file condition="$PLASTER_PARAM_ReadtheDocs -eq 'READTHEDOCS'" source='..\Read_the_Docs\.readthedocs.yaml' destination='.readthedocs.yaml' />
 
        <file condition="$PLASTER_PARAM_RTDTheme -eq 'READTHEDOCSTHEME'" source='..\Read_the_Docs\readthedocs\requirements.txt' destination='docs\requirements.txt' />
        <templateFile condition="$PLASTER_PARAM_RTDTheme -eq 'READTHEDOCSTHEME'" source='..\Read_the_Docs\readthedocs\mkdocs.yml' destination='mkdocs.yml' />
 
        <file condition="$PLASTER_PARAM_RTDTheme -eq 'MATERIALTHEME'" source='..\Read_the_Docs\material\requirements.txt' destination='docs\requirements.txt' />
        <templateFile condition="$PLASTER_PARAM_RTDTheme -eq 'MATERIALTHEME'" source='..\Read_the_Docs\material\mkdocs.yml' destination='mkdocs.yml' />
 
        <!-- CI\CD -->
        <!-- _________GitHub Actions -->
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITHUB' -and $PLASTER_PARAM_GitHubAOptions -eq 'windows'" source='..\GitHubActions\workflows\wf_Windows.yml' destination='.github\workflows\wf_Windows.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITHUB' -and $PLASTER_PARAM_GitHubAOptions -eq 'pwshcore'" source='..\GitHubActions\workflows\wf_Windows_Core.yml' destination='.github\workflows\wf_Windows_Core.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITHUB' -and $PLASTER_PARAM_GitHubAOptions -eq 'linux'" source='..\GitHubActions\workflows\wf_Linux.yml' destination='.github\workflows\wf_Linux.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITHUB' -and $PLASTER_PARAM_GitHubAOptions -eq 'macos'" source='..\GitHubActions\workflows\wf_MacOS.yml' destination='.github\workflows\wf_MacOS.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITHUB'" source='..\GitHubActions\actions_bootstrap.ps1' destination='actions_bootstrap.ps1'/>
        <!-- _________AWS -->
        <file condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD'" source='..\AWS\configure_aws_credential.ps1' destination='configure_aws_credential.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_AWSOptions -eq 'ps'" source='..\AWS\buildspec_powershell_windows.yml' destination='buildspec_powershell_windows.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_AWSOptions -eq 'pwshcore'" source='..\AWS\buildspec_pwsh_windows.yml' destination='buildspec_pwsh_windows.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_AWSOptions -eq 'pwsh'" source='..\AWS\buildspec_pwsh_linux.yml' destination='buildspec_pwsh_linux.yml' />
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD'" source='..\AWS\install_modules.ps1' destination='install_modules.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_RepoType -eq 'GITHUB'" source='..\AWS\CloudFormation\PowerShellCodeBuildGit.yml' destination='CloudFormation\PowerShellCodeBuildGit.yml'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_RepoType -eq 'BITBUCKET'" source='..\AWS\CloudFormation\PowerShellCodeBuildGit.yml' destination='CloudFormation\PowerShellCodeBuildGit.yml'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD' -and $PLASTER_PARAM_RepoType -eq 'CODECOMMIT'" source='..\AWS\CloudFormation\PowerShellCodeBuildCC.yml' destination='CloudFormation\PowerShellCodeBuildCC.yml'/>
        <!-- _________Appveyor -->
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'APPVEYOR'" source='..\AppVeyor\actions_bootstrap.ps1' destination='actions_bootstrap.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'APPVEYOR'" source='..\AppVeyor\appveyor.yml' destination='appveyor.yml' />
        <!-- _________GitLab CI/CD -->
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITLAB'" source='..\GitLab\actions_bootstrap.ps1' destination='actions_bootstrap.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'GITLAB'" source='..\GitLab\.gitlab-ci.yml' destination='.gitlab-ci.yml' />
        <!-- _________Bitbucket Pipelines -->
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'BITBUCKET'" source='..\Bitbucket\actions_bootstrap.ps1' destination='actions_bootstrap.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'BITBUCKET'" source='..\Bitbucket\bitbucket-pipelines.yml' destination='bitbucket-pipelines.yml' />
        <!-- _________Azure Pipelines -->
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'AZURE'" source='..\Azure\actions_bootstrap.ps1' destination='actions_bootstrap.ps1'/>
        <templateFile condition="$PLASTER_PARAM_CICD -eq 'AZURE'" source='..\Azure\azure-pipelines.yml' destination='azure-pipelines.yml' />
 
        <!-- Manifest -->
        <newModuleManifest destination='src\${PLASTER_PARAM_ModuleName}\${PLASTER_PARAM_ModuleName}.psd1' moduleVersion='$PLASTER_PARAM_Version' encoding='UTF8-NoBOM' openInEditor="true" author='$PLASTER_PARAM_FN' description='$PLASTER_PARAM_description' nestedModules='./${PLASTER_PARAM_ModuleName}.Extension' />
 
        <!-- Required modules -->
        <requireModule condition="$PLASTER_PARAM_Pester -eq '4'" name="Pester" minimumVersion="4.7.2" message="Without Pester, you will not be able to run the provided Pester test to validate your module manifest file.`nWithout version 4.5.0, VS Code will not display Pester warnings and errors in the Problems panel."/>
        <requireModule condition="$PLASTER_PARAM_Pester -eq '5'" name="Pester" minimumVersion="5.2.2" message="Without Pester, you will not be able to run the provided Pester test to validate your module manifest file."/>
        <requireModule name="InvokeBuild" minimumVersion="5.8.0" message="Without InvokeBuild, you will not be able to run local builds."/>
        <requireModule name="platyPS" requiredVersion ="0.12.0" message="This template requires platyPS v0.12.0 module to properly generate help."/>
        <requireModule name="Microsoft.PowerShell.SecretManagement" minimumVersion ="1.1.2" message="Without the PowerShell SecretManagement you will not be able to properly test your extension."/>
 
        <!-- Outro Messages -->
        <message>
            &#10;Your new SecretManagement extension vault project 'SecretManagement.$PLASTER_PARAM_ModuleName' has been created.
        </message>
 
        <message>
            Read more about SecretManagement extension vault module: https://github.com/techthoughts2/Catesta/blob/main/docs/Catesta-Vault-Extension.md
        </message>
 
        <message condition="$PLASTER_PARAM_CICD -eq 'CODEBUILD'">
            &#10;CloudFormation files have been generated for this project. You can find these in the CloudFormation folder.
            &#13;You can login to your AWS account and utilize these file to quickly create a stack for your project build.
            &#13;More information: https://github.com/techthoughts2/Catesta/blob/main/docs/Catesta-AWS.md
        </message>
    </content>
</plasterManifest>