Firefly.PSCloudFormation.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <!-- Cmdlet: New-PSCFNChangeset -->
  <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">
    <command:details>
      <command:name>New-PSCFNChangeset</command:name>
      <command:verb>New</command:verb>
      <command:noun>PSCFNChangeset</command:noun>
      <maml:description>
        <maml:para>Calls the AWS CloudFormation CreateChangeSet API operation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set. To create a change set for the entire stack hierarchy, set IncludeNestedStacks to True.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-PSCFNChangeset</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Capabilities -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
          <maml:name>Capabilities</maml:name>
          <maml:description>
            <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ChangesetDetail -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ChangesetDetail</maml:name>
          <maml:description>
            <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
            <maml:para>If this argument is not present, the detail is output to the pipeline. The output is always JSON.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ForceS3 -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ForceS3</maml:name>
          <maml:description>
            <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IncludeNestedStacks -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
          <maml:name>IncludeNestedStacks</maml:name>
          <maml:description>
            <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NotificationARNs -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>NotificationARNs</maml:name>
          <maml:description>
            <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ParameterFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ParameterFile</maml:name>
          <maml:description>
            <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
            <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourcesToImport -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourcesToImport</maml:name>
          <maml:description>
            <maml:para>The resources to import into your stack.</maml:para>
            <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourceType -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourceType</maml:name>
          <maml:description>
            <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
          <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
          <maml:description>
            <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
          <maml:description>
            <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Select -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Select</maml:name>
          <maml:description>
            <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ShowInBrowser -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ShowInBrowser</maml:name>
          <maml:description>
            <maml:para>If set and a GUI is detected, display the changeset detail in the default browser.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: StackPolicyLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
          <maml:name>StackPolicyLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tag -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
          <maml:name>Tag</maml:name>
          <maml:description>
            <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Tag[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemplateLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
          <maml:name>TemplateLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
            <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: UsePreviousTemplate -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>UsePreviousTemplate</maml:name>
          <maml:description>
            <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: ChangesetDetail -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ChangesetDetail</maml:name>
        <maml:description>
          <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
          <maml:para>If this argument is not present, the detail is output to the pipeline. The output is always JSON.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IncludeNestedStacks -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
        <maml:name>IncludeNestedStacks</maml:name>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
        <maml:name>IncludeNestedStack</maml:name>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
          <maml:para>This is an alias of the IncludeNestedStacks parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ResourcesToImport -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourcesToImport</maml:name>
        <maml:description>
          <maml:para>The resources to import into your stack.</maml:para>
          <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Select -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Select</maml:name>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ShowInBrowser -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ShowInBrowser</maml:name>
        <maml:description>
          <maml:para>If set and a GUI is detected, display the changeset detail in the default browser.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: UsePreviousTemplate -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>UsePreviousTemplate</maml:name>
        <maml:description>
          <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Capabilities -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capabilities</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capability</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          <maml:para>This is an alias of the Capabilities parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ForceS3 -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ForceS3</maml:name>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NotificationARNs -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>NotificationARNs</maml:name>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ResourceType -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourceType</maml:name>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinutes</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          <maml:para>This is an alias of the RollbackConfiguration_MonitoringTimeInMinute parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackPolicyLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tag -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tag</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tags</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          <maml:para>This is an alias of the Tag parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemplateLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ParameterFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ParameterFile</maml:name>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
          <maml:para>If this argument is not present, the detail is output to the pipeline. The output is always JSON.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The resources to import into your stack.</maml:para>
          <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set and a GUI is detected, display the changeset detail in the default browser.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>New-PSCFNChangeset -StackName "my-stack" -UsePreviousTemplate -PK1 PV1 -PK2 PV2</dev:code>
        <dev:remarks>
          <maml:para>Creates a changeset for the stack my-stack and outputs the changeset detail as JSON to the pipeline. The template currently associated with the stack is used and updated with new customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>New-PSCFNChangeset -StackName "my-stack" -UsePreviousTemplate -PK1 PV1 -PK2 PV2 -ShowInBrowser</dev:code>
        <dev:remarks>
          <maml:para>Creates a changeset for the stack my-stack and launches the default browser to view the changeset detail. The template currently associated with the stack is used and updated with new customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>New-PSCFNChangeset -StackName "my-stack" -TemplateLocation my-stack.yaml -PK1 PV1 -PK2 PV2 -ChangesetDetail my-stack-changes.json</dev:code>
        <dev:remarks>
          <maml:para>Creates a changeset for the stack my-stack and saves the JSON changeset detail to the specified file. The template in my-stack.yaml is used and updated with new customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>PSCloudFormation private S3 bucket</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/s3-usage.html</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Resource Import (PSCloudFormation)</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/resource-import.html</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Resource Import (AWS docs)</maml:linkText>
        <maml:uri>(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Changeset documentation (PSCloudFormation)</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/changesets.html</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: New-PSCFNPackage -->
  <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">
    <command:details>
      <command:name>New-PSCFNPackage</command:name>
      <command:verb>New</command:verb>
      <command:noun>PSCFNPackage</command:noun>
      <maml:description>
        <maml:para>Packages the local artifacts (local paths) that your AWS CloudFormation template references, similarly to aws cloudformation package.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The command uploads local artifacts, such as source code for an AWS Lambda function or a Swagger file for an AWS API Gateway REST API, to an S3 bucket. The command returns a copy of your template, replacing references to local artifacts with the S3 location where the command uploaded the artifacts. Unlike aws cloudformation package, the output template is in the same format as the input template, i.e. there is no conversion from JSON to YAML.</maml:para>
      <maml:para>Use this command to quickly upload local artifacts that might be required by your template. After you package your template's artifacts, run the New-PSCFNStack command to deploy the returned template.</maml:para>
      <maml:para>To specify a local artifact in your template, specify a path to a local file or folder, as either an absolute or relative path. The relative path is a location that is relative to your template's location.</maml:para>
      <maml:para>For example, if your AWS Lambda function source code is in the /home/user/code/lambdafunction/ folder, specify CodeUri: /home/user/code/lambdafunction for the AWS::Serverless::Function resource. The command returns a template and replaces the local path with the S3 location: CodeUri: s3://mybucket/lambdafunction.zip.</maml:para>
      <maml:para>If you specify a file, the command directly uploads it to the S3 bucket, zipping it first if the resource requires it (e.g. lambda). If you specify a folder, the command zips the folder and then uploads the .zip file. For most resources, if you don't specify a path, the command zips and uploads the current working directory. he exception is AWS::ApiGateway::RestApi; if you don't specify a BodyS3Location, this command will not upload an artifact to S3.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-PSCFNPackage</maml:name>
        <!-- Parameter: TemplateFile -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
          <maml:name>TemplateFile</maml:name>
          <maml:description>
            <maml:para>The path where your AWS CloudFormation template is located.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Metadata -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Metadata</maml:name>
          <maml:description>
            <maml:para>A map of metadata to attach to ALL the artifacts that are referenced in your template.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IDictionary</command:parameterValue>
          <dev:type>
            <maml:name>System.Collections.IDictionary</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OutputTemplateFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>OutputTemplateFile</maml:name>
          <maml:description>
            <maml:para>The path to the file where the command writes the output AWS CloudFormation template. If you don't specify a path, the command writes the template to the standard output.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3Bucket -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Bucket,BucketName">
          <maml:name>S3Bucket</maml:name>
          <maml:description>
            <maml:para>The name of the S3 bucket where this command uploads the artifacts that are referenced in your template. If not specified, then the oversize template bucket will be used.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3Prefix -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Prefix,KeyPrefix">
          <maml:name>S3Prefix</maml:name>
          <maml:description>
            <maml:para>A prefix name that the command adds to the artifacts' name when it uploads them to the S3 bucket. The prefix name is a path name (folder name) for the S3 bucket.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Metadata -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Metadata</maml:name>
        <maml:description>
          <maml:para>A map of metadata to attach to ALL the artifacts that are referenced in your template.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IDictionary</command:parameterValue>
        <dev:type>
          <maml:name>System.Collections.IDictionary</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: OutputTemplateFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>OutputTemplateFile</maml:name>
        <maml:description>
          <maml:para>The path to the file where the command writes the output AWS CloudFormation template. If you don't specify a path, the command writes the template to the standard output.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3Bucket -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Bucket,BucketName">
        <maml:name>S3Bucket</maml:name>
        <maml:description>
          <maml:para>The name of the S3 bucket where this command uploads the artifacts that are referenced in your template. If not specified, then the oversize template bucket will be used.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Bucket,BucketName">
        <maml:name>Bucket</maml:name>
        <maml:description>
          <maml:para>The name of the S3 bucket where this command uploads the artifacts that are referenced in your template. If not specified, then the oversize template bucket will be used.</maml:para>
          <maml:para>This is an alias of the S3Bucket parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Bucket,BucketName">
        <maml:name>BucketName</maml:name>
        <maml:description>
          <maml:para>The name of the S3 bucket where this command uploads the artifacts that are referenced in your template. If not specified, then the oversize template bucket will be used.</maml:para>
          <maml:para>This is an alias of the S3Bucket parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3Prefix -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Prefix,KeyPrefix">
        <maml:name>S3Prefix</maml:name>
        <maml:description>
          <maml:para>A prefix name that the command adds to the artifacts' name when it uploads them to the S3 bucket. The prefix name is a path name (folder name) for the S3 bucket.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Prefix,KeyPrefix">
        <maml:name>Prefix</maml:name>
        <maml:description>
          <maml:para>A prefix name that the command adds to the artifacts' name when it uploads them to the S3 bucket. The prefix name is a path name (folder name) for the S3 bucket.</maml:para>
          <maml:para>This is an alias of the S3Prefix parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Prefix,KeyPrefix">
        <maml:name>KeyPrefix</maml:name>
        <maml:description>
          <maml:para>A prefix name that the command adds to the artifacts' name when it uploads them to the S3 bucket. The prefix name is a path name (folder name) for the S3 bucket.</maml:para>
          <maml:para>This is an alias of the S3Prefix parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemplateFile -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
        <maml:name>TemplateFile</maml:name>
        <maml:description>
          <maml:para>The path where your AWS CloudFormation template is located.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Collections.IDictionary</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A map of metadata to attach to ALL the artifacts that are referenced in your template.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The path to the file where the command writes the output AWS CloudFormation template. If you don't specify a path, the command writes the template to the standard output.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name of the S3 bucket where this command uploads the artifacts that are referenced in your template. If not specified, then the oversize template bucket will be used.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A prefix name that the command adds to the artifacts' name when it uploads them to the S3 bucket. The prefix name is a path name (folder name) for the S3 bucket.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The path where your AWS CloudFormation template is located.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>New-PSCFNPackage -TemplateFile my-template.json -OutputTemplateFile my-modified-template.json</dev:code>
        <dev:remarks>
          <maml:para>Reads the template, recursively walking any AWS::CloudFormation::Stack resources, uploading code artifacts and nested templates to S3, using the bucket that is auto-created by this module.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>New-PSCFNPackage -TemplateFile my-template.json -OutputTemplateFile my-modified-template.json -S3Bucket my-bucket -S3Prefix template-resources</dev:code>
        <dev:remarks>
          <maml:para>Reads the template, recursively walking any AWS::CloudFormation::Stack resources, uploading code artifacts and nested templates to S3, using the specified bucket which must exist, and key prefix for all uploaded objects.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>New-PSCFNPackage -TemplateFile my-template.json | New-PSCFNStack -StackName my-stack -ParameterFile stack-parameters.json</dev:code>
        <dev:remarks>
          <maml:para>Reads the template, recursively walking any AWS::CloudFormation::Stack resources, uploading code artifacts and nested templates to S3, then sends the modified template to New-PSCFNStack to create a new stack.</maml:para>
          <maml:para>Due to the nuances of PowerShell dynamic parameters, any stack customization parameters must be placed in a parameter file, as PowerShell starts the New-PSCFNStack cmdlet before it receives the template, therefore the template parameters cannot be known in advance.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Packaging Lambda Dependencies</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/lambda-packager.html</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>PSCloudFormation private S3 bucket</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/s3-usage.html</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: New-PSCFNStack -->
  <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">
    <command:details>
      <command:name>New-PSCFNStack</command:name>
      <command:verb>New</command:verb>
      <command:noun>PSCFNStack</command:noun>
      <maml:description>
        <maml:para>Calls the AWS CloudFormation CreateStack API operation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates a stack as specified in the template. The call does not return until the stack creation has completed unless -PassThru is present, in which case it returns immediately and you can check the status of the stack via the DescribeStacks API Stack events for this template and any nested stacks are output to the console.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-PSCFNStack</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Capabilities -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
          <maml:name>Capabilities</maml:name>
          <maml:description>
            <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DisableRollback -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DisableRollback</maml:name>
          <maml:description>
            <maml:para>Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.Default: false.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: EnableTerminationProtection -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>EnableTerminationProtection</maml:name>
          <maml:description>
            <maml:para>Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ForceS3 -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ForceS3</maml:name>
          <maml:description>
            <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NotificationARNs -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>NotificationARNs</maml:name>
          <maml:description>
            <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OnFailure -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OnFailure</maml:name>
          <maml:description>
            <maml:para>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.Default: ROLLBACK</maml:para>
          </maml:description>
          <command:parameterValue required="true">OnFailure</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.OnFailure</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ParameterFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ParameterFile</maml:name>
          <maml:description>
            <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
            <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourceType -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourceType</maml:name>
          <maml:description>
            <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
          <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
          <maml:description>
            <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
          <maml:description>
            <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Select -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Select</maml:name>
          <maml:description>
            <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: StackPolicyLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
          <maml:name>StackPolicyLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tag -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
          <maml:name>Tag</maml:name>
          <maml:description>
            <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Tag[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemplateLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
          <maml:name>TemplateLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
            <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: DisableRollback -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DisableRollback</maml:name>
        <maml:description>
          <maml:para>Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.Default: false.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: EnableTerminationProtection -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>EnableTerminationProtection</maml:name>
        <maml:description>
          <maml:para>Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: OnFailure -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OnFailure</maml:name>
        <maml:description>
          <maml:para>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.Default: ROLLBACK</maml:para>
        </maml:description>
        <command:parameterValue required="true">OnFailure</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.OnFailure</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Select -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Select</maml:name>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Capabilities -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capabilities</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capability</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          <maml:para>This is an alias of the Capabilities parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ForceS3 -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ForceS3</maml:name>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NotificationARNs -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>NotificationARNs</maml:name>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ResourceType -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourceType</maml:name>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinutes</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          <maml:para>This is an alias of the RollbackConfiguration_MonitoringTimeInMinute parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackPolicyLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tag -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tag</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tags</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          <maml:para>This is an alias of the Tag parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemplateLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ParameterFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ParameterFile</maml:name>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: CloudFormationResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>Firefly.CloudFormation.Model.CloudFormationResult</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>New-PSCFNStack -StackName "my-stack" -TemplateBody "{TEMPLATE CONTENT HERE}" -PK1 PV1 -PK2 PV2 -DisableRollback</dev:code>
        <dev:remarks>
          <maml:para>Creates a new stack with the specified name and follows the output until the operation completes. The template is parsed from the supplied content with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If creation of the stack fails, it will not be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>New-PSCFNStack -StackName "my-stack" -TemplateLocation template.yaml -PK1 PV1 -PK2 PV2 -OnFailure "ROLLBACK"</dev:code>
        <dev:remarks>
          <maml:para>Creates a new stack with the specified name from template in given file and follows the output until the operation completes. If template is larger than 51,200 bytes it will be automatically uploaded to S3 first. The template is parsed from the given file with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If creation of the stack fails, it will be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>New-PSCFNStack -StackName "my-stack" -TemplateURL s3://my-template-bucket/template.yaml -PK1 PV1 -PK2 PV2</dev:code>
        <dev:remarks>
          <maml:para>Creates a new stack with the specified name from template in S3 and follows the output until the operation completes. The template is obtained from the Amazon S3 URL with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If creation of the stack fails, it will be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>New-PSCFNStack -StackName "my-stack" -TemplateURL https://my-template-bucket.s3.amazonaws.com/template.yaml -PK1 PV1 -PK2 PV2 -NotificationARN @( "arn1", "arn2" )</dev:code>
        <dev:remarks>
          <maml:para>Creates a new stack with the specified name from template in S3 and follows the output until the operation completes. The template is obtained from the Amazon S3 URL with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If creation of the stack fails, it will be rolled back. The specified notification ARNs will receive published stack-related events.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>New-PSCFNStack -StackName "my-stack" -TemplateURL https://my-template-bucket.s3.amazonaws.com/template.yaml -PK1 PV1 -PK2 PV2 -NotificationARN @( "arn1", "arn2" ) -PassThru</dev:code>
        <dev:remarks>
          <maml:para>As the above example, but the command will return immediately.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>PSCloudFormation private S3 bucket</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/s3-usage.html</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Remove-PSCFNStack -->
  <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">
    <command:details>
      <command:name>Remove-PSCFNStack</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>PSCFNStack</command:noun>
      <maml:description>
        <maml:para>Calls the AWS CloudFormation DeleteStack API operation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Deletes a specified stack. The call does not return until the stack deletion has completed unless -PassThru is present, in which case it returns immediately and you can check the status of the stack via the DescribeStacks API Stack events for this template and any nested stacks are output to the console.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Remove-PSCFNStack</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RetainResource -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
          <maml:name>RetainResource</maml:name>
          <maml:description>
            <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Select -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Select</maml:name>
          <maml:description>
            <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying '*' will return a hash table containing a key for each of the above. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: RetainResource -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
        <maml:name>RetainResource</maml:name>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
        <maml:name>RetainResources</maml:name>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
          <maml:para>This is an alias of the RetainResource parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Select -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Select</maml:name>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying '*' will return a hash table containing a key for each of the above. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying '*' will return a hash table containing a key for each of the above. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: CloudFormationResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>Firefly.CloudFormation.Model.CloudFormationResult</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Remove-PSCFNStack -StackName my-stack</dev:code>
        <dev:remarks>
          <maml:para>Deletes the specified stack</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Remove-PSCFNStack -StackName my-stack -PassThru</dev:code>
        <dev:remarks>
          <maml:para>Deletes the specified stack. Don't wait for the deletion to complete.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Remove-PSCFNStack -StackName my-stack -RetainResource my-bucket, my-security-group</dev:code>
        <dev:remarks>
          <maml:para>Deletes the specified stack, retaining the specified resources.</maml:para>
          <maml:para>Note that the listed resources will only be retained if, and only if the stack is in a DELETE_FAILED state and the listed resources are the cause of the failure. IF the stack is not DELETE_FAILED, you will be asked if you want to proceed with the delete and if you answer yes, then ALL resources will be deleted.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Reset-PSCFNStack -->
  <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">
    <command:details>
      <command:name>Reset-PSCFNStack</command:name>
      <command:verb>Reset</command:verb>
      <command:noun>PSCFNStack</command:noun>
      <maml:description>
        <maml:para>Deletes, then recreates a stack.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Deletes a specified stack, then recreates it from the supplied template. You may want to do this if a previous create attempt failed leaving the stack in ROLLBACK_COMPLETE, then you fix the template. The call does not return until the stack recreation has completed unless -PassThru is present, in which case it returns immediately after the creation of the new stack is initiated and you can check the status of the stack via the DescribeStacks API Stack events for this template and any nested stacks are output to the console.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Reset-PSCFNStack</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Capabilities -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
          <maml:name>Capabilities</maml:name>
          <maml:description>
            <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DisableRollback -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>DisableRollback</maml:name>
          <maml:description>
            <maml:para>Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.Default: false.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: EnableTerminationProtection -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EnableTerminationProtection</maml:name>
          <maml:description>
            <maml:para>Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ForceS3 -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ForceS3</maml:name>
          <maml:description>
            <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NotificationARNs -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>NotificationARNs</maml:name>
          <maml:description>
            <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OnFailure -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>OnFailure</maml:name>
          <maml:description>
            <maml:para>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.Default: ROLLBACK</maml:para>
          </maml:description>
          <command:parameterValue required="true">OnFailure</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.OnFailure</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ParameterFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ParameterFile</maml:name>
          <maml:description>
            <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
            <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourceType -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourceType</maml:name>
          <maml:description>
            <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RetainResource -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
          <maml:name>RetainResource</maml:name>
          <maml:description>
            <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
          <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
          <maml:description>
            <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
          <maml:description>
            <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Select -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Select</maml:name>
          <maml:description>
            <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: StackPolicyLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
          <maml:name>StackPolicyLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tag -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
          <maml:name>Tag</maml:name>
          <maml:description>
            <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Tag[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemplateLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
          <maml:name>TemplateLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
            <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TimeoutInMinutes -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TimeoutInMinutes</maml:name>
          <maml:description>
            <maml:para>The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: DisableRollback -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>DisableRollback</maml:name>
        <maml:description>
          <maml:para>Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.Default: false.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: EnableTerminationProtection -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EnableTerminationProtection</maml:name>
        <maml:description>
          <maml:para>Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: OnFailure -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>OnFailure</maml:name>
        <maml:description>
          <maml:para>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.Default: ROLLBACK</maml:para>
        </maml:description>
        <command:parameterValue required="true">OnFailure</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.OnFailure</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TimeoutInMinutes -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>TimeoutInMinutes</maml:name>
        <maml:description>
          <maml:para>The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RetainResource -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
        <maml:name>RetainResource</maml:name>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RetainResources">
        <maml:name>RetainResources</maml:name>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
          <maml:para>This is an alias of the RetainResource parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Select -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Select</maml:name>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Capabilities -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capabilities</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capability</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          <maml:para>This is an alias of the Capabilities parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ForceS3 -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ForceS3</maml:name>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NotificationARNs -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>NotificationARNs</maml:name>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ResourceType -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourceType</maml:name>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinutes</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          <maml:para>This is an alias of the RollbackConfiguration_MonitoringTimeInMinute parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackPolicyLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tag -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tag</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tags</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          <maml:para>This is an alias of the Tag parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemplateLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ParameterFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ParameterFile</maml:name>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.Default: false.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.OnFailure</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.Default: ROLLBACK</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: CloudFormationResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>Firefly.CloudFormation.Model.CloudFormationResult</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Reset-PSCFNStack -StackName "my-stack" -TemplateBody "{TEMPLATE CONTENT HERE}" -PK1 PV1 -PK2 PV2 -DisableRollback</dev:code>
        <dev:remarks>
          <maml:para>Deletes then creates a new stack with the specified name and follows the output until the operation completes. The template is parsed from the supplied content with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If creation of the stack fails, it will not be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>PSCloudFormation private S3 bucket</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/s3-usage.html</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Update-PSCFNStack -->
  <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">
    <command:details>
      <command:name>Update-PSCFNStack</command:name>
      <command:verb>Update</command:verb>
      <command:noun>PSCFNStack</command:noun>
      <maml:description>
        <maml:para>Calls the AWS CloudFormation UpdateStack API operation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>A change set is first created and displayed to the user. Unless -Force is specified, the user may choose to continue or abandon at this stage. The call does not return until the stack update has completed unless -PassThru is present, in which case it returns immediately and you can check the status of the stack via the DescribeStacks API Stack events for this template and any nested stacks are output to the console.</maml:para>
      <maml:para>If -Wait is present, and a stack is found to be updating as a result of another process, this command will wait for that operation to complete following the stack events, prior to submitting the change set request.</maml:para>
      <maml:para>While a stack is in the UPDATE_IN_PROGRESS phase, pressing ESC 3 times in the space of a second will cancel the update forcing all modifications to roll back. Once the state transitions to UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, the update can no longer be cancelled.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Update-PSCFNStack</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Capabilities -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
          <maml:name>Capabilities</maml:name>
          <maml:description>
            <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ChangesetDetail -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ChangesetDetail</maml:name>
          <maml:description>
            <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
            <maml:para>The output is always JSON.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ForceS3 -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ForceS3</maml:name>
          <maml:description>
            <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IncludeNestedStacks -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
          <maml:name>IncludeNestedStacks</maml:name>
          <maml:description>
            <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NotificationARNs -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>NotificationARNs</maml:name>
          <maml:description>
            <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ParameterFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ParameterFile</maml:name>
          <maml:description>
            <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
            <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourcesToImport -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourcesToImport</maml:name>
          <maml:description>
            <maml:para>The resources to import into your stack.</maml:para>
            <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create. You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ResourceType -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ResourceType</maml:name>
          <maml:description>
            <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
          <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
          <maml:description>
            <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
          <maml:description>
            <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Select -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Select</maml:name>
          <maml:description>
            <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: StackPolicyDuringUpdateLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyDuringUpdateBody,StackPolicyDuringUpdateURL">
          <maml:name>StackPolicyDuringUpdateLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the temporary overriding stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: StackPolicyLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
          <maml:name>StackPolicyLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Tag -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
          <maml:name>Tag</maml:name>
          <maml:description>
            <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Tag[]</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemplateLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
          <maml:name>TemplateLocation</maml:name>
          <maml:description>
            <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
            <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
            <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: UsePreviousTemplate -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>UsePreviousTemplate</maml:name>
          <maml:description>
            <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>If set, and the target stack is found to have an operation already in progress, then the command waits until that operation completes, printing out stack events as it goes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: ChangesetDetail -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ChangesetDetail</maml:name>
        <maml:description>
          <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
          <maml:para>The output is always JSON.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IncludeNestedStacks -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
        <maml:name>IncludeNestedStacks</maml:name>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="IncludeNestedStack">
        <maml:name>IncludeNestedStack</maml:name>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
          <maml:para>This is an alias of the IncludeNestedStacks parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: StackPolicyDuringUpdateLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyDuringUpdateBody,StackPolicyDuringUpdateURL">
        <maml:name>StackPolicyDuringUpdateLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the temporary overriding stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyDuringUpdateBody,StackPolicyDuringUpdateURL">
        <maml:name>StackPolicyDuringUpdateBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the temporary overriding stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyDuringUpdateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyDuringUpdateBody,StackPolicyDuringUpdateURL">
        <maml:name>StackPolicyDuringUpdateURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the temporary overriding stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyDuringUpdateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: UsePreviousTemplate -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>UsePreviousTemplate</maml:name>
        <maml:description>
          <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ResourcesToImport -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourcesToImport</maml:name>
        <maml:description>
          <maml:para>The resources to import into your stack.</maml:para>
          <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create. You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Select -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Select</maml:name>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Wait -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Wait</maml:name>
        <maml:description>
          <maml:para>If set, and the target stack is found to have an operation already in progress, then the command waits until that operation completes, printing out stack events as it goes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Capabilities -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capabilities</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Capability">
        <maml:name>Capability</maml:name>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
          <maml:para>This is an alias of the Capabilities parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ForceS3 -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ForceS3</maml:name>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NotificationARNs -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>NotificationARNs</maml:name>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ResourceType -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ResourceType</maml:name>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_MonitoringTimeInMinute -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinute</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RollbackConfiguration_MonitoringTimeInMinutes">
        <maml:name>RollbackConfiguration_MonitoringTimeInMinutes</maml:name>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
          <maml:para>This is an alias of the RollbackConfiguration_MonitoringTimeInMinute parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RollbackConfiguration_RollbackTrigger -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RollbackConfiguration_RollbackTrigger</maml:name>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RollbackTrigger[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackPolicyLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StackPolicyBody,StackPolicyURL">
        <maml:name>StackPolicyURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
          <maml:para>This is an alias of the StackPolicyLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Tag -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tag</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="Tags">
        <maml:name>Tags</maml:name>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
          <maml:para>This is an alias of the Tag parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Tag[]</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemplateLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateLocation</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateBody</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named" aliases="TemplateBody,TemplateURL">
        <maml:name>TemplateURL</maml:name>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
          <maml:para>This is an alias of the TemplateLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ParameterFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ParameterFile</maml:name>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specifies a path to a file into which to write detailed JSON change information. This can be useful in situations where you need to get other people to review changes, or you want to add the changeset information to e.g. git.</maml:para>
          <maml:para>The output is always JSON.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Creates a change set for the all nested stacks specified in the template.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the temporary overriding stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateLocation or set the UsePreviousTemplate to true.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The resources to import into your stack.</maml:para>
          <maml:para>If you created an AWS resource outside of AWS CloudFormation management, you can bring this existing resource into AWS CloudFormation management using resource import. You can manage your resources using AWS CloudFormation regardless of where they were created without having to delete and re-create them as part of a stack. Note that when performing an import, this is the only change that can happen to the stack. If any other resources are changed, the changeset will fail to create. You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the resource import body as JSON or YAML.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default. Specifying 'arn' will return the stack's ARN. Specifying 'result' will return the stack operation result. Specifying 'outputs' will return any stack outputs as a hashtable. Specifying 'ChangesetArn' will return the changeset's ARN. Specifying '*' will return a hash table containing a key for each of the preceding named outputs. Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. Note that not all parameters are available, e.g. credential parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set, and the target stack is found to have an operation already in progress, then the command waits until that operation completes, printing out stack events as it goes.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, forces upload of a local template (file or string body) to S3, irrespective of whether the template size is over the maximum of 51,200 bytes</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes.If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.RollbackTrigger[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. If a specified trigger is missing, the entire stack operation fails and is rolled back.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either a string, path to a file, or URL of a object in S3 that contains the policy body.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.CloudFormation.Model.Tag[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Structure containing the template body. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.</maml:para>
          <maml:para>You can specify either a string, path to a file, or URL of a object in S3 that contains the template body.</maml:para>
          <maml:para>You can also pipe a template body to this command, e.g. from the output of the New-PSCFNPackage command.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: CloudFormationResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>Firefly.CloudFormation.Model.CloudFormationResult</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Update-PSCFNStack -StackName "my-stack" -TemplateBody "{TEMPLATE CONTENT HERE}" -PK1 PV1 -PK2 PV2</dev:code>
        <dev:remarks>
          <maml:para>Updates the stack my-stack and follows the output until the operation completes. The template is parsed from the supplied content with customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If update of the stack fails, it will be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Update-PSCFNStack -StackName "my-stack" -UsePreviousTemplate -PK1 PV1 -PK2 PV2</dev:code>
        <dev:remarks>
          <maml:para>Updates the stack my-stack and follows the output until the operation completes. The template currently associated with the stack is used and updated with new customization parameters ('PK1' and 'PK2' represent the names of parameters declared in the template content, 'PV1' and 'PV2' represent the values for those parameters. If update of the stack fails, it will be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Update-PSCFNStack -StackName "my-stack" -TemplateLocation ~/my-templates/template.json -ResourcesToImport ~/my-templates/import-resources.yaml</dev:code>
        <dev:remarks>
          <maml:para>Performs a resource import on the stack my-stack and follows the output until the operation completes. The template is parsed from the supplied content and resources to import are parsed from the supplied import file. Note that when importing resources, only IMPORT changes are permitted. Nothing else in the stack can be changed in the same operation. If update of the stack fails, it will be rolled back.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <maml:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>PSCloudFormation private S3 bucket</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/s3-usage.html</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Resource Import (PSCloudFormation)</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/resource-import.html</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Resource Import (AWS docs)</maml:linkText>
        <maml:uri>(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Changeset documentation (PSCloudFormation)</maml:linkText>
        <maml:uri>https://fireflycons.github.io/PSCloudFormation/articles/changesets.html</maml:uri>
      </maml:navigationLink>
    </maml:relatedLinks>
  </command:command>
  <!-- Cmdlet: Get-PSCFNStackOutputs -->
  <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">
    <command:details>
      <command:name>Get-PSCFNStackOutputs</command:name>
      <command:verb>Get</command:verb>
      <command:noun>PSCFNStackOutputs</command:noun>
      <maml:description>
        <maml:para>Get the outputs of a stack in various formats</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet can be used to assist creation of new CloudFormation templates that refer to the outputs of another stack. It can be used to generate either mapping or parameter blocks based on these outputs by converting the returned object to JSON or YAML</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Imports -->
      <command:syntaxItem>
        <maml:name>Get-PSCFNStackOutputs</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>One or more stacks to process. One object is produced for each stack</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AsCrossStackReferences -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>AsCrossStackReferences</maml:name>
          <maml:description>
            <maml:para>If set, returned object is formatted as a set of Fn::ImportValue statements, with any text matching the stack name within the output's ExportName being replaced with a placeholder generated from the stack name with the word 'Stack' appended. Make this a parameter to your new stack.</maml:para>
            <maml:para>Whilst the result output is not much use as it is, the individual elements can be copied and pasted in where an Fn::ImportValue statements for that parameter would be used.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Hash -->
      <command:syntaxItem>
        <maml:name>Get-PSCFNStackOutputs</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>One or more stacks to process. One object is produced for each stack</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AsHashTable -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>AsHashTable</maml:name>
          <maml:description>
            <maml:para>If set (default), returned object is a hash table - key/value pairs for each stack output.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Parameters -->
      <command:syntaxItem>
        <maml:name>Get-PSCFNStackOutputs</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>One or more stacks to process. One object is produced for each stack</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AsParameterBlock -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>AsParameterBlock</maml:name>
          <maml:description>
            <maml:para>If set, returned object is formatted as a CloudFormation parameter block.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: AsCrossStackReferences -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>AsCrossStackReferences</maml:name>
        <maml:description>
          <maml:para>If set, returned object is formatted as a set of Fn::ImportValue statements, with any text matching the stack name within the output's ExportName being replaced with a placeholder generated from the stack name with the word 'Stack' appended. Make this a parameter to your new stack.</maml:para>
          <maml:para>Whilst the result output is not much use as it is, the individual elements can be copied and pasted in where an Fn::ImportValue statements for that parameter would be used.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AsHashTable -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>AsHashTable</maml:name>
        <maml:description>
          <maml:para>If set (default), returned object is a hash table - key/value pairs for each stack output.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AsParameterBlock -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>AsParameterBlock</maml:name>
        <maml:description>
          <maml:para>If set, returned object is formatted as a CloudFormation parameter block.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>One or more stacks to process. One object is produced for each stack</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set, returned object is formatted as a set of Fn::ImportValue statements, with any text matching the stack name within the output's ExportName being replaced with a placeholder generated from the stack name with the word 'Stack' appended. Make this a parameter to your new stack.</maml:para>
          <maml:para>Whilst the result output is not much use as it is, the individual elements can be copied and pasted in where an Fn::ImportValue statements for that parameter would be used.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set (default), returned object is a hash table - key/value pairs for each stack output.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set, returned object is formatted as a CloudFormation parameter block.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>One or more stacks to process. One object is produced for each stack</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: Hashtable -->
      <command:returnValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
      <!-- OutputType: String -->
      <command:returnValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$stackOutputs = Get-PSCFNStackOutputs -StackName my-stack -AsHashTable</dev:code>
        <dev:remarks>
          <maml:para>Retrieves the outputs of the given stack as a hashtable of output key and output value.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Export-PSCFNTerraform -->
  <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">
    <command:details>
      <command:name>Export-PSCFNTerraform</command:name>
      <command:verb>Export</command:verb>
      <command:noun>PSCFNTerraform</command:noun>
      <maml:description>
        <maml:para>Export an existing CloudFormation stack to Terraform</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Reads the CloudFormation stack and exports as many of its resources as possible to a Terraform workspace. This provides a starting position for migration of stacks to Terraform.</maml:para>
      <maml:para>Once the resource ownership has been passed to Terraform, all the resources within the CloudFormation template should have their deletion policy set to Retain, then the CloudFormation stack deleted, thus leaving the resources intact.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Export-PSCFNTerraform</maml:name>
        <!-- Parameter: StackName -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>StackName</maml:name>
          <maml:description>
            <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: WorkspaceDirectory -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>WorkspaceDirectory</maml:name>
          <maml:description>
            <maml:para>Specifies the directory for the Terraform workspace. It will be created if it does not exist.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AccessKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
          <maml:name>AccessKey</maml:name>
          <maml:description>
            <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ClientRequestToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ClientRequestToken</maml:name>
          <maml:description>
            <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AWSCredentials</command:parameterValue>
          <dev:type>
            <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ExportNestedStacks -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ExportNestedStacks</maml:name>
          <maml:description>
            <maml:para>If set, export nested stacks as Terraform modules.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetworkCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>NetworkCredential</maml:name>
          <maml:description>
            <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ParameterFile -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>ParameterFile</maml:name>
          <maml:description>
            <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
            <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PassThru -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ProfileLocation -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
          <maml:name>ProfileLocation</maml:name>
          <maml:description>
            <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
            <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
            <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
            <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ProfileName -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
          <maml:name>ProfileName</maml:name>
          <maml:description>
            <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Region -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
          <maml:name>Region</maml:name>
          <maml:description>
            <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: RoleARN -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>RoleARN</maml:name>
          <maml:description>
            <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: S3EndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>S3EndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make S3 calls against.</maml:para>
            <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SecretKey -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
          <maml:name>SecretKey</maml:name>
          <maml:description>
            <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionToken -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
          <maml:name>SessionToken</maml:name>
          <maml:description>
            <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: STSEndpointUrl -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>STSEndpointUrl</maml:name>
          <maml:description>
            <maml:para>The endpoint to make STS calls against.</maml:para>
            <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
            <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: WithDefaultTag -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>WithDefaultTag</maml:name>
          <maml:description>
            <maml:para>If this switch is present, then a default_tags block is added to the AWS provider declaration. A default tag of terraform:stack_name with value being the name of the exported CloudFormation stack is added to all resources, enabling you to create a resource group by tag name in the AWS console of all resources in the new configuration that support tagging.</maml:para>
            <maml:para>This has the side effect of marking all imported resources as requiring an in-place change to apply the new tag.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: WorkspaceDirectory -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>WorkspaceDirectory</maml:name>
        <maml:description>
          <maml:para>Specifies the directory for the Terraform workspace. It will be created if it does not exist.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ExportNestedStacks -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ExportNestedStacks</maml:name>
        <maml:description>
          <maml:para>If set, export nested stacks as Terraform modules.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: WithDefaultTag -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>WithDefaultTag</maml:name>
        <maml:description>
          <maml:para>If this switch is present, then a default_tags block is added to the AWS provider declaration. A default tag of terraform:stack_name with value being the name of the exported CloudFormation stack is added to all resources, enabling you to create a resource group by tag name in the AWS console of all resources in the new configuration that support tagging.</maml:para>
          <maml:para>This has the side effect of marking all imported resources as requiring an in-place change to apply the new tag.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ParameterFile -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ParameterFile</maml:name>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ClientRequestToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>ClientRequestToken</maml:name>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PassThru -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: RoleARN -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>RoleARN</maml:name>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StackName -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>StackName</maml:name>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: AccessKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AK">
        <maml:name>AK</maml:name>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the AccessKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AWSCredentials</command:parameterValue>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetworkCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>NetworkCredential</maml:name>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileLocation -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfileLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>AWSProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="AWSProfilesLocation,ProfilesLocation">
        <maml:name>ProfilesLocation</maml:name>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
          <maml:para>This is an alias of the ProfileLocation parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: ProfileName -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>ProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>StoredCredentials</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="StoredCredentials,AWSProfileName">
        <maml:name>AWSProfileName</maml:name>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
          <maml:para>This is an alias of the ProfileName parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Region -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>Region</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="RegionToCall">
        <maml:name>RegionToCall</maml:name>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
          <maml:para>This is an alias of the Region parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: S3EndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>S3EndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SecretKey -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SK</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="SK,SecretAccessKey">
        <maml:name>SecretAccessKey</maml:name>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
          <maml:para>This is an alias of the SecretKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionToken -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>SessionToken</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named" aliases="ST">
        <maml:name>ST</maml:name>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
          <maml:para>This is an alias of the SessionToken parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: STSEndpointUrl -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>STSEndpointUrl</maml:name>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Specifies the directory for the Terraform workspace. It will be created if it does not exist.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If set, export nested stacks as Terraform modules.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this switch is present, then a default_tags block is added to the AWS provider declaration. A default tag of terraform:stack_name with value being the name of the exported CloudFormation stack is added to all resources, enabling you to create a resource group by tag name in the AWS console of all resources in the new configuration that support tagging.</maml:para>
          <maml:para>This has the side effect of marking all imported resources as requiring an in-place change to apply the new tag.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If present, location of a list of stack parameters to apply. This is a JSON or YAML list of parameter structures with fields ParameterKey and ParameterValue. This is similar to aws cloudformation create-stack except the other fields defined for that are ignored here. Parameters not supplied to an update operation are assumed to be UsePreviousValue. If a parameter of the same name is defined on the command line, the command line takes precedence. If your stack has a parameter with the same name as one of the parameters to this cmdlet, then you *must* set the stack parameter via a parameter file.</maml:para>
          <maml:para>You can specify either a string containing JSON or YAML, or path to a file that contains the parameters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>This parameter overrides confirmation prompts to force the cmdlet to continue its operation. This parameter should always be used with caution.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>If this is set, then the operation returns immediately after submitting the request to CloudFormation. If not set, then the operation is followed to completion, with stack events being output to the console.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack.A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS access key for the user account. This can be a temporary access key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>Amazon.Runtime.AWSCredentials</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An AWSCredentials object instance containing access and secret key information, and optionally a token for session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make CloudFormation calls against.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used with SAML-based authentication when ProfileName references a SAML role profile. Contains the network credentials to be supplied during authentication with the configured identity provider's endpoint. This parameter is not required if the user's default network identity can or should be used during authentication.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Used to specify the name and location of the ini-format credential file (shared with the AWS CLI and other AWS SDKs)</maml:para>
          <maml:para>If this optional parameter is omitted this cmdlet will search the encrypted credential file used by the AWS SDK for .NET and AWS Toolkit for Visual Studio first. If the profile is not found then the cmdlet will search in the ini-format credential file at the default location: (user's home directory)\.aws\credentials.</maml:para>
          <maml:para>If this parameter is specified then this cmdlet will only search the ini-format credential file at the location given.</maml:para>
          <maml:para>As the current folder can vary in a shell or during script execution it is advised that you use specify a fully qualified path instead of a relative path.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The user-defined name of an AWS credentials or SAML-based role profile containing credential information. The profile is expected to be found in the secure credential file shared with the AWS SDK for .NET and AWS Toolkit for Visual Studio. You can also specify the name of a profile stored in the .ini-format credential file used with the AWS CLI and other AWS SDKs.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The system name of an AWS region or an AWSRegion instance. This governs the endpoint that will be used when calling service operations. Note that the AWS resources referenced in a call are usually region-specific.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make S3 calls against.</maml:para>
          <maml:para>S3 is used by these cmdlets for managing S3 based templates and by the packager for uploading code artifacts and nested templates.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AWS secret key for the user account. This can be a temporary secret key if the corresponding session token is supplied to the -SessionToken parameter.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session token if the access and secret keys are temporary session-based credentials.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The endpoint to make STS calls against.</maml:para>
          <maml:para>STS is used only if creating a bucket to store oversize templates and packager artifacts to get the caller account ID to use as part of the generated bucket name.</maml:para>
          <maml:para>The cmdlets normally determine which endpoint to call based on the region specified to the -Region parameter or set as default in the shell (via Set-DefaultAWSRegion). Only specify this parameter if you must direct the call to a specific custom endpoint, e.g. if using LocalStack or some other AWS emulator or a VPC endpoint from an EC2 instance.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Export-PSCFNTerraform -StackName my-stack -WorkspaceDirectory ~/tf/my-stack</dev:code>
        <dev:remarks>
          <maml:para>Reads my-stack from AWS via the CloudFormation service and generates Terraform code for that stack in the specified directory.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>Export-PSCFNTerraform -StackName my-stack -WorkspaceDirectory ~/tf/my-stack -NonInteractive</dev:code>
        <dev:remarks>
          <maml:para>As the first example, but does not ask questions about resources that cannot be imported directly. These resources are reported as not imported.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>Export-PSCFNTerraform -StackName my-stack -WorkspaceDirectory ~/tf/my-stack -Force</dev:code>
        <dev:remarks>
          <maml:para>As the first example, but if an existing state file is found in the workspace, it is overwritten without prompting.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
</helpItems>