VaporShell.CodeDeploy.psm1
# PSM1 Contents function Format-Json { [CmdletBinding()] Param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [String] $Json ) Begin { $cleaner = { param([String]$Line) Process{ [Regex]::Replace( $Line, "\\u(?<Value>[a-zA-Z0-9]{4})", { param($m)([char]([int]::Parse( $m.Groups['Value'].Value, [System.Globalization.NumberStyles]::HexNumber ))).ToString() } ) } } } Process { if ($PSVersionTable.PSVersion.Major -lt 6) { try { $indent = 0; $res = $Json -split '\n' | ForEach-Object { if ($_ -match '[\}\]]') { # This line contains ] or }, decrement the indentation level $indent-- } $line = (' ' * $indent * 2) + $_.TrimStart().Replace(': ', ': ') if ($_ -match '[\{\[]') { # This line contains [ or {, increment the indentation level $indent++ } $cleaner.Invoke($line) } $res -join "`n" } catch { ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n" } } else { ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n" } } } function Get-TrueCount { Param ( [parameter(Mandatory = $false,Position = 0,ValueFromPipeline = $true)] $Array ) Process { if ($array) { if ($array.Count) { $count = $array.Count } else { $count = 1 } } else { $count = 0 } } End { return $count } } function New-VSError { <# .SYNOPSIS Error generator function to use in tandem with $PSCmdlet.ThrowTerminatingError() .PARAMETER Result Allows input of an error from AWS SDK, resulting in the Exception message being parsed out. .PARAMETER String Used to create basic String message errors in the same wrapper #> [cmdletbinding(DefaultParameterSetName="Result")] param( [parameter(Position=0,ParameterSetName="Result")] $Result, [parameter(Position=0,ParameterSetName="String")] $String ) switch ($PSCmdlet.ParameterSetName) { Result { $Exception = "$($result.Exception.InnerException.Message)" } String { $Exception = "$String" } } $e = New-Object "System.Exception" $Exception $errorRecord = New-Object 'System.Management.Automation.ErrorRecord' $e, $null, ([System.Management.Automation.ErrorCategory]::InvalidOperation), $null return $errorRecord } function ResolveS3Endpoint { <# .SYNOPSIS Resolves the S3 endpoint most appropriate for each region. #> Param ( [parameter(Mandatory=$true,Position=0)] [ValidateSet("eu-west-2","ap-south-1","us-east-2","sa-east-1","us-west-1","us-west-2","eu-west-1","ap-southeast-2","ca-central-1","ap-northeast-2","us-east-1","eu-central-1","ap-southeast-1","ap-northeast-1")] [String] $Region ) $endpointMap = @{ "us-east-2" = "s3.us-east-2.amazonaws.com" "us-east-1" = "s3.amazonaws.com" "us-west-1" = "s3-us-west-1.amazonaws.com" "us-west-2" = "s3-us-west-2.amazonaws.com" "ca-central-1" = "s3.ca-central-1.amazonaws.com" "ap-south-1" = "s3.ap-south-1.amazonaws.com" "ap-northeast-2" = "s3.ap-northeast-2.amazonaws.com" "ap-southeast-1" = "s3-ap-southeast-1.amazonaws.com" "ap-southeast-2" = "s3-ap-southeast-2.amazonaws.com" "ap-northeast-1" = "s3-ap-northeast-1.amazonaws.com" "eu-central-1" = "s3.eu-central-1.amazonaws.com" "eu-west-1" = "s3-eu-west-1.amazonaws.com" "eu-west-2" = "s3.eu-west-2.amazonaws.com" "sa-east-1" = "s3-sa-east-1.amazonaws.com" } return $endpointMap[$Region] } function Add-VSCodeDeployDeploymentConfigMinimumHealthyHosts { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts resource property to the template. MinimumHealthyHosts is a property of the DeploymentConfig: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html resource that defines how many instances must remain healthy during an AWS CodeDeploy deployment. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts resource property to the template. MinimumHealthyHosts is a property of the DeploymentConfig: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html resource that defines how many instances must remain healthy during an AWS CodeDeploy deployment. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html .PARAMETER Type The minimum healthy instance type: + HOST_COUNT: The minimum number of healthy instance as an absolute value. + FLEET_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment. In an example of nine instance, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instance at a time. The deployment is successful if four or more instance are deployed to successfully. Otherwise, the deployment fails. In a call to GetDeploymentConfig, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT. In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful. For more information, see AWS CodeDeploy Instance Health: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html in the *AWS CodeDeploy User Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-type PrimitiveType: String UpdateType: Mutable .PARAMETER Value The minimum healthy instance value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-value PrimitiveType: Integer UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentConfigMinimumHealthyHosts])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Type, [parameter(Mandatory = $true)] [object] $Value ) Process { $obj = [CodeDeployDeploymentConfigMinimumHealthyHosts]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentConfigMinimumHealthyHosts' function Add-VSCodeDeployDeploymentConfigTimeBasedCanary { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html .PARAMETER CanaryInterval Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary-canaryinterval PrimitiveType: Integer UpdateType: Mutable .PARAMETER CanaryPercentage Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary-canarypercentage PrimitiveType: Integer UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentConfigTimeBasedCanary])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $CanaryInterval, [parameter(Mandatory = $true)] [object] $CanaryPercentage ) Process { $obj = [CodeDeployDeploymentConfigTimeBasedCanary]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentConfigTimeBasedCanary' function Add-VSCodeDeployDeploymentConfigTimeBasedLinear { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html .PARAMETER LinearInterval Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear-linearinterval PrimitiveType: Integer UpdateType: Mutable .PARAMETER LinearPercentage Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear-linearpercentage PrimitiveType: Integer UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentConfigTimeBasedLinear])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $LinearInterval, [parameter(Mandatory = $true)] [object] $LinearPercentage ) Process { $obj = [CodeDeployDeploymentConfigTimeBasedLinear]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentConfigTimeBasedLinear' function Add-VSCodeDeployDeploymentConfigTrafficRoutingConfig { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html .PARAMETER TimeBasedCanary Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary Type: TimeBasedCanary UpdateType: Mutable .PARAMETER TimeBasedLinear Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear Type: TimeBasedLinear UpdateType: Mutable .PARAMETER Type Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-type PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentConfigTrafficRoutingConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $TimeBasedCanary, [parameter(Mandatory = $false)] $TimeBasedLinear, [parameter(Mandatory = $true)] [object] $Type ) Process { $obj = [CodeDeployDeploymentConfigTrafficRoutingConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentConfigTrafficRoutingConfig' function Add-VSCodeDeployDeploymentGroupAlarm { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.Alarm resource property to the template. The Alarm property type specifies a CloudWatch alarm to use for an AWS CodeDeploy deployment group. The Alarm property of the CodeDeploy DeploymentGroup AlarmConfiguration : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html property contains a list of Alarm property types. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.Alarm resource property to the template. The Alarm property type specifies a CloudWatch alarm to use for an AWS CodeDeploy deployment group. The Alarm property of the CodeDeploy DeploymentGroup AlarmConfiguration : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html property contains a list of Alarm property types. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html .PARAMETER Name The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html#cfn-codedeploy-deploymentgroup-alarm-name PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupAlarm])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Name ) Process { $obj = [CodeDeployDeploymentGroupAlarm]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupAlarm' function Add-VSCodeDeployDeploymentGroupAlarmConfiguration { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration resource property to the template. The AlarmConfiguration property type configuresCloudWatch alarms for an AWS CodeDeploy deployment group. AlarmConfiguration is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration resource property to the template. The AlarmConfiguration property type configuresCloudWatch alarms for an AWS CodeDeploy deployment group. AlarmConfiguration is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html .PARAMETER Alarms A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-alarms DuplicatesAllowed: False ItemType: Alarm Type: List UpdateType: Mutable .PARAMETER Enabled Indicates whether the alarm configuration is enabled. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-enabled PrimitiveType: Boolean UpdateType: Mutable .PARAMETER IgnorePollAlarmFailure Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. + true: The deployment proceeds even if alarm status information can't be retrieved from Amazon CloudWatch. + false: The deployment stops if alarm status information can't be retrieved from Amazon CloudWatch. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-ignorepollalarmfailure PrimitiveType: Boolean UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupAlarmConfiguration])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Alarms, [parameter(Mandatory = $false)] [object] $Enabled, [parameter(Mandatory = $false)] [object] $IgnorePollAlarmFailure ) Process { $obj = [CodeDeployDeploymentGroupAlarmConfiguration]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupAlarmConfiguration' function Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration resource property to the template. The AutoRollbackConfiguration property type configures automatic rollback for an AWS CodeDeploy deployment group when a deployment is not completed successfully. For more information, see Automatic Rollbacks: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html#deployments-rollback-and-redeploy-automatic-rollbacks in the *AWS CodeDeploy User Guide*. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration resource property to the template. The AutoRollbackConfiguration property type configures automatic rollback for an AWS CodeDeploy deployment group when a deployment is not completed successfully. For more information, see Automatic Rollbacks: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html#deployments-rollback-and-redeploy-automatic-rollbacks in the *AWS CodeDeploy User Guide*. AutoRollbackConfiguration is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html .PARAMETER Enabled Indicates whether a defined automatic rollback configuration is currently enabled. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-enabled PrimitiveType: Boolean UpdateType: Mutable .PARAMETER Events The event type or types that trigger a rollback. Valid values are DEPLOYMENT_FAILURE, DEPLOYMENT_STOP_ON_ALARM, or DEPLOYMENT_STOP_ON_REQUEST. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-events DuplicatesAllowed: False PrimitiveItemType: String Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupAutoRollbackConfiguration])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Enabled, [parameter(Mandatory = $false)] $Events ) Process { $obj = [CodeDeployDeploymentGroupAutoRollbackConfiguration]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration' function Add-VSCodeDeployDeploymentGroupBlueGreenDeploymentConfiguration { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html .PARAMETER DeploymentReadyOption Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption Type: DeploymentReadyOption UpdateType: Mutable .PARAMETER GreenFleetProvisioningOption Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-greenfleetprovisioningoption Type: GreenFleetProvisioningOption UpdateType: Mutable .PARAMETER TerminateBlueInstancesOnDeploymentSuccess Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-terminateblueinstancesondeploymentsuccess Type: BlueInstanceTerminationOption UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $DeploymentReadyOption, [parameter(Mandatory = $false)] $GreenFleetProvisioningOption, [parameter(Mandatory = $false)] $TerminateBlueInstancesOnDeploymentSuccess ) Process { $obj = [CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupBlueGreenDeploymentConfiguration' function Add-VSCodeDeployDeploymentGroupBlueInstanceTerminationOption { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html .PARAMETER Action Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-blueinstanceterminationoption-action PrimitiveType: String UpdateType: Mutable .PARAMETER TerminationWaitTimeInMinutes Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-blueinstanceterminationoption-terminationwaittimeinminutes PrimitiveType: Integer UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupBlueInstanceTerminationOption])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Action, [parameter(Mandatory = $false)] [object] $TerminationWaitTimeInMinutes ) Process { $obj = [CodeDeployDeploymentGroupBlueInstanceTerminationOption]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupBlueInstanceTerminationOption' function Add-VSCodeDeployDeploymentGroupDeployment { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.Deployment resource property to the template. Deployment is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource that specifies an AWS CodeDeploy application revision to be deployed to instances in the deployment group. If you specify an application revision, your target revision is deployed as soon as the provisioning process is complete. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.Deployment resource property to the template. Deployment is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource that specifies an AWS CodeDeploy application revision to be deployed to instances in the deployment group. If you specify an application revision, your target revision is deployed as soon as the provisioning process is complete. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html .PARAMETER Description A comment about the deployment. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-description PrimitiveType: String UpdateType: Mutable .PARAMETER IgnoreApplicationStopFailures If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop. If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted. During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. All other scripts are run from the AppSpec file in the current deployment. If one of these scripts contains an error and does not run successfully, the deployment can fail. If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-ignoreapplicationstopfailures PrimitiveType: Boolean UpdateType: Mutable .PARAMETER Revision Information about the location of stored application artifacts and the service from which to retrieve them. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision Type: RevisionLocation UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupDeployment])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Description, [parameter(Mandatory = $false)] [object] $IgnoreApplicationStopFailures, [parameter(Mandatory = $true)] $Revision ) Process { $obj = [CodeDeployDeploymentGroupDeployment]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupDeployment' function Add-VSCodeDeployDeploymentGroupDeploymentReadyOption { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html .PARAMETER ActionOnTimeout Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption-actionontimeout PrimitiveType: String UpdateType: Mutable .PARAMETER WaitTimeInMinutes Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption-waittimeinminutes PrimitiveType: Integer UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupDeploymentReadyOption])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $ActionOnTimeout, [parameter(Mandatory = $false)] [object] $WaitTimeInMinutes ) Process { $obj = [CodeDeployDeploymentGroupDeploymentReadyOption]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupDeploymentReadyOption' function Add-VSCodeDeployDeploymentGroupDeploymentStyle { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.DeploymentStyle resource property to the template. Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.DeploymentStyle resource property to the template. Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html .PARAMETER DeploymentOption Indicates whether to route deployment traffic behind a load balancer. An EC2 Application Load Balancer or Network Load Balancer is required for an Amazon ECS deployment. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymentoption PrimitiveType: String UpdateType: Mutable .PARAMETER DeploymentType Indicates whether to run an in-place or blue/green deployment. AWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only. For more information about deploying on an AWS Lambda compute platform, see Deployments on an AWS Lambda Compute Platform: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html#deployment-steps-lambda in the *AWS CodeDeploy User Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymenttype PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupDeploymentStyle])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $DeploymentOption, [parameter(Mandatory = $false)] [object] $DeploymentType ) Process { $obj = [CodeDeployDeploymentGroupDeploymentStyle]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupDeploymentStyle' function Add-VSCodeDeployDeploymentGroupEC2TagFilter { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagFilter resource property to the template. Information about an EC2 tag filter. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagFilter resource property to the template. Information about an EC2 tag filter. For more information about using tags and tag groups to help manage your Amazon EC2 instances and on-premises instances, see Tagging Instances for Deployment Groups in AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-tagging.html in the *AWS CodeDeploy User Guide*. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html .PARAMETER Key The tag filter key. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-key PrimitiveType: String UpdateType: Mutable .PARAMETER Type The tag filter type: + KEY_ONLY: Key only. + VALUE_ONLY: Value only. + KEY_AND_VALUE: Key and value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-type PrimitiveType: String UpdateType: Mutable .PARAMETER Value The tag filter value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-value PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupEC2TagFilter])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Key, [parameter(Mandatory = $false)] [object] $Type, [parameter(Mandatory = $false)] [object] $Value ) Process { $obj = [CodeDeployDeploymentGroupEC2TagFilter]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupEC2TagFilter' function Add-VSCodeDeployDeploymentGroupEC2TagSet { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagSet resource property to the template. The EC2TagSet property type specifies information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. EC2TagSet cannot be used in the same template as EC2TagFilter. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagSet resource property to the template. The EC2TagSet property type specifies information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. EC2TagSet cannot be used in the same template as EC2TagFilter. For information about using tags and tag groups to help manage your Amazon EC2 instances and on-premises instances, see Tagging Instances for Deployment Groups in AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-tagging.html. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html .PARAMETER Ec2TagSetList The EC2 tags that are already applied to EC2 instances that you want to include in the deployment group. CodeDeploy includes all EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html#cfn-codedeploy-deploymentgroup-ec2tagset-ec2tagsetlist DuplicatesAllowed: False ItemType: EC2TagSetListObject Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupEC2TagSet])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Ec2TagSetList ) Process { $obj = [CodeDeployDeploymentGroupEC2TagSet]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupEC2TagSet' function Add-VSCodeDeployDeploymentGroupEC2TagSetListObject { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject resource property to the template. The EC2TagSet property type specifies information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject resource property to the template. The EC2TagSet property type specifies information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same template as EC2TagFilters. For more information about using tags and tag groups to help manage your Amazon EC2 instances and on-premises instances, see Tagging Instances for Deployment Groups in AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-tagging.html in the *AWS CodeDeploy User Guide*. EC2TagSet is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource type. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html .PARAMETER Ec2TagGroup A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html#cfn-codedeploy-deploymentgroup-ec2tagsetlistobject-ec2taggroup DuplicatesAllowed: False ItemType: EC2TagFilter Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupEC2TagSetListObject])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Ec2TagGroup ) Process { $obj = [CodeDeployDeploymentGroupEC2TagSetListObject]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupEC2TagSetListObject' function Add-VSCodeDeployDeploymentGroupECSService { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.ECSService resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.ECSService resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html .PARAMETER ClusterName Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-clustername PrimitiveType: String UpdateType: Mutable .PARAMETER ServiceName Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-servicename PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupECSService])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $ClusterName, [parameter(Mandatory = $true)] [object] $ServiceName ) Process { $obj = [CodeDeployDeploymentGroupECSService]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupECSService' function Add-VSCodeDeployDeploymentGroupELBInfo { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.ELBInfo resource property to the template. The ELBInfo property type specifies information about the Elastic Load Balancing load balancer used for an AWS CodeDelpoy deployment group. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.ELBInfo resource property to the template. The ELBInfo property type specifies information about the Elastic Load Balancing load balancer used for an AWS CodeDelpoy deployment group. If you specify the ELBInfo property, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for AWS CodeDeploy to route your traffic using the specified load balancers. ELBInfo is a property of the AWS CodeDeploy DeploymentGroup LoadBalancerInfo : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html property type. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html .PARAMETER Name For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment is complete. AWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html#cfn-codedeploy-deploymentgroup-elbinfo-name PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupELBInfo])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Name ) Process { $obj = [CodeDeployDeploymentGroupELBInfo]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupELBInfo' function Add-VSCodeDeployDeploymentGroupGitHubLocation { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.GitHubLocation resource property to the template. GitHubLocation is a property of the CodeDeploy DeploymentGroup Revision: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html property that specifies the location of an application revision that is stored in GitHub. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.GitHubLocation resource property to the template. GitHubLocation is a property of the CodeDeploy DeploymentGroup Revision: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html property that specifies the location of an application revision that is stored in GitHub. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html .PARAMETER CommitId The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-commitid PrimitiveType: String UpdateType: Mutable .PARAMETER Repository The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision. Specify the value as account/repository. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-repository PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupGitHubLocation])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $CommitId, [parameter(Mandatory = $true)] [object] $Repository ) Process { $obj = [CodeDeployDeploymentGroupGitHubLocation]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupGitHubLocation' function Add-VSCodeDeployDeploymentGroupGreenFleetProvisioningOption { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html .PARAMETER Action Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-greenfleetprovisioningoption-action PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupGreenFleetProvisioningOption])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Action ) Process { $obj = [CodeDeployDeploymentGroupGreenFleetProvisioningOption]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupGreenFleetProvisioningOption' function Add-VSCodeDeployDeploymentGroupLoadBalancerInfo { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo resource property to the template. The LoadBalancerInfo property type specifies information about the load balancer or target group used for an AWS CodeDeploy deployment group. For more information, see Integrating CodeDeploy with Elastic Load Balancing : https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html in the *AWS CodeDeploy User Guide*. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo resource property to the template. The LoadBalancerInfo property type specifies information about the load balancer or target group used for an AWS CodeDeploy deployment group. For more information, see Integrating CodeDeploy with Elastic Load Balancing : https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html in the *AWS CodeDeploy User Guide*. For AWS CloudFormation to use the properties specified in LoadBalancerInfo, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL. If DeploymentStyle.DeploymentOption is not set to WITH_TRAFFIC_CONTROL, AWS CloudFormation ignores any settings specified in LoadBalancerInfo. **Note** AWS CloudFormation supports blue/green deployments on the AWS Lambda compute platform only. LoadBalancerInfo is a property of the DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html .PARAMETER ElbInfoList An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. Adding more than one load balancer to the array is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-elbinfolist DuplicatesAllowed: False ItemType: ELBInfo Type: List UpdateType: Mutable .PARAMETER TargetGroupInfoList An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. Adding more than one target group to the array is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-targetgroupinfolist DuplicatesAllowed: False ItemType: TargetGroupInfo Type: List UpdateType: Mutable .PARAMETER TargetGroupPairInfoList *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-targetgrouppairinfolist DuplicatesAllowed: False ItemType: TargetGroupPairInfo Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupLoadBalancerInfo])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $ElbInfoList, [parameter(Mandatory = $false)] [object] $TargetGroupInfoList, [parameter(Mandatory = $false)] [object] $TargetGroupPairInfoList ) Process { $obj = [CodeDeployDeploymentGroupLoadBalancerInfo]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupLoadBalancerInfo' function Add-VSCodeDeployDeploymentGroupOnPremisesTagSet { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet resource property to the template. The OnPremisesTagSet property type specifies a list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet resource property to the template. The OnPremisesTagSet property type specifies a list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. For more information about using tags and tag groups to help manage your Amazon EC2 instances and on-premises instances, see Tagging Instances for Deployment Groups in AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-tagging.html in the *AWS CodeDeploy User Guide*. OnPremisesTagSet is a property of the DeploymentGroup : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html .PARAMETER OnPremisesTagSetList A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. Duplicates are not allowed. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html#cfn-codedeploy-deploymentgroup-onpremisestagset-onpremisestagsetlist DuplicatesAllowed: False ItemType: OnPremisesTagSetListObject Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupOnPremisesTagSet])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $OnPremisesTagSetList ) Process { $obj = [CodeDeployDeploymentGroupOnPremisesTagSet]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupOnPremisesTagSet' function Add-VSCodeDeployDeploymentGroupOnPremisesTagSetListObject { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject resource property to the template. The OnPremisesTagSetListObject property type specifies lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject resource property to the template. The OnPremisesTagSetListObject property type specifies lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. OnPremisesTagSetListObject is a property of the CodeDeploy DeploymentGroup OnPremisesTagSet: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html property type. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html .PARAMETER OnPremisesTagGroup Information about groups of on-premises instance tags. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html#cfn-codedeploy-deploymentgroup-onpremisestagsetlistobject-onpremisestaggroup DuplicatesAllowed: False ItemType: TagFilter Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupOnPremisesTagSetListObject])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $OnPremisesTagGroup ) Process { $obj = [CodeDeployDeploymentGroupOnPremisesTagSetListObject]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupOnPremisesTagSetListObject' function Add-VSCodeDeployDeploymentGroupRevisionLocation { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.RevisionLocation resource property to the template. RevisionLocation is a property that defines the location of the CodeDeploy application revision to deploy. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.RevisionLocation resource property to the template. RevisionLocation is a property that defines the location of the CodeDeploy application revision to deploy. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html .PARAMETER GitHubLocation Information about the location of application artifacts stored in GitHub. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation Type: GitHubLocation UpdateType: Mutable .PARAMETER RevisionType The type of application revision: + S3: An application revision stored in Amazon S3. + GitHub: An application revision stored in GitHub EC2/On-premises deployments only. + String: A YAML-formatted or JSON-formatted string AWS Lambda deployments only. + AppSpecContent: An AppSpecContent object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-revisiontype PrimitiveType: String UpdateType: Mutable .PARAMETER S3Location Information about the location of a revision stored in Amazon S3. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location Type: S3Location UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupRevisionLocation])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $GitHubLocation, [parameter(Mandatory = $false)] [object] $RevisionType, [parameter(Mandatory = $false)] $S3Location ) Process { $obj = [CodeDeployDeploymentGroupRevisionLocation]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupRevisionLocation' function Add-VSCodeDeployDeploymentGroupS3Location { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.S3Location resource property to the template. S3Location is a property of the CodeDeploy DeploymentGroup Revision : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html property that specifies the location of an application revision that is stored in Amazon Simple Storage Service (S3. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.S3Location resource property to the template. S3Location is a property of the CodeDeploy DeploymentGroup Revision : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html property that specifies the location of an application revision that is stored in Amazon Simple Storage Service (S3. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html .PARAMETER Bucket The name of the Amazon S3 bucket where the application revision is stored. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bucket PrimitiveType: String UpdateType: Mutable .PARAMETER BundleType The file type of the application revision. Must be one of the following: + JSON + tar: A tar archive file. + tgz: A compressed tar archive file. + YAML + zip: A zip archive file. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bundletype PrimitiveType: String UpdateType: Mutable .PARAMETER ETag The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-etag PrimitiveType: String UpdateType: Mutable .PARAMETER Key The name of the Amazon S3 object that represents the bundled artifacts for the application revision. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-key PrimitiveType: String UpdateType: Mutable .PARAMETER Version A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-value PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupS3Location])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $false)] [object] $BundleType, [parameter(Mandatory = $false)] [object] $ETag, [parameter(Mandatory = $true)] [object] $Key, [parameter(Mandatory = $false)] [object] $Version ) Process { $obj = [CodeDeployDeploymentGroupS3Location]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupS3Location' function Add-VSCodeDeployDeploymentGroupTagFilter { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.TagFilter resource property to the template. TagFilter is a property type of the AWS::CodeDeploy::DeploymentGroup : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource that specifies which on-premises instances to associate with the deployment group. To register on-premise instances with AWS CodeDeploy, see Configure Existing On-Premises Instances by Using AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html in the *AWS CodeDeploy User Guide*. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.TagFilter resource property to the template. TagFilter is a property type of the AWS::CodeDeploy::DeploymentGroup : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html resource that specifies which on-premises instances to associate with the deployment group. To register on-premise instances with AWS CodeDeploy, see Configure Existing On-Premises Instances by Using AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html in the *AWS CodeDeploy User Guide*. For more information about using tags and tag groups to help manage your Amazon EC2 instances and on-premises instances, see Tagging Instances for Deployment Groups in AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-tagging.html in the *AWS CodeDeploy User Guide*. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html .PARAMETER Key The on-premises instance tag filter key. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-key PrimitiveType: String UpdateType: Mutable .PARAMETER Type The on-premises instance tag filter type: + KEY_ONLY: Key only. + VALUE_ONLY: Value only. + KEY_AND_VALUE: Key and value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-type PrimitiveType: String UpdateType: Mutable .PARAMETER Value The on-premises instance tag filter value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-value PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupTagFilter])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Key, [parameter(Mandatory = $false)] [object] $Type, [parameter(Mandatory = $false)] [object] $Value ) Process { $obj = [CodeDeployDeploymentGroupTagFilter]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupTagFilter' function Add-VSCodeDeployDeploymentGroupTargetGroupInfo { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo resource property to the template. The TargetGroupInfo property type specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see TargetGroupInfo: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TargetGroupInfo.html in the *AWS CodeDeploy API Reference* .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo resource property to the template. The TargetGroupInfo property type specifies information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see TargetGroupInfo: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TargetGroupInfo.html in the *AWS CodeDeploy API Reference* If you specify the TargetGroupInfo property, the DeploymentStyle.DeploymentOption property must be set to WITH_TRAFFIC_CONTROL for CodeDeploy to route your traffic using the specified target groups. TargetGroupInfo is a property of the LoadBalancerInfo: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html property type. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html .PARAMETER Name For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. No duplicates allowed. AWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only. This value cannot exceed 32 characters, so you should use the Name property of the target group, or the TargetGroupName attribute with the Fn::GetAtt intrinsic function, as shown in the following example. Don't use the group's Amazon Resource Name ARN or TargetGroupFullName attribute. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html#cfn-codedeploy-deploymentgroup-targetgroupinfo-name PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupTargetGroupInfo])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Name ) Process { $obj = [CodeDeployDeploymentGroupTargetGroupInfo]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupTargetGroupInfo' function Add-VSCodeDeployDeploymentGroupTargetGroupPairInfo { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgrouppairinfo.html .PARAMETER ProdTrafficRoute Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgrouppairinfo.html#cfn-codedeploy-deploymentgroup-targetgrouppairinfo-prodtrafficroute Type: TrafficRoute UpdateType: Mutable .PARAMETER TargetGroups Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgrouppairinfo.html#cfn-codedeploy-deploymentgroup-targetgrouppairinfo-targetgroups DuplicatesAllowed: False ItemType: TargetGroupInfo Type: List UpdateType: Mutable .PARAMETER TestTrafficRoute Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgrouppairinfo.html#cfn-codedeploy-deploymentgroup-targetgrouppairinfo-testtrafficroute Type: TrafficRoute UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupTargetGroupPairInfo])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $ProdTrafficRoute, [parameter(Mandatory = $false)] [object] $TargetGroups, [parameter(Mandatory = $false)] $TestTrafficRoute ) Process { $obj = [CodeDeployDeploymentGroupTargetGroupPairInfo]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupTargetGroupPairInfo' function Add-VSCodeDeployDeploymentGroupTrafficRoute { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.TrafficRoute resource property to the template. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.TrafficRoute resource property to the template. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-trafficroute.html .PARAMETER ListenerArns Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-trafficroute.html#cfn-codedeploy-deploymentgroup-trafficroute-listenerarns DuplicatesAllowed: False PrimitiveItemType: String Type: List UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupTrafficRoute])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $ListenerArns ) Process { $obj = [CodeDeployDeploymentGroupTrafficRoute]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupTrafficRoute' function Add-VSCodeDeployDeploymentGroupTriggerConfig { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup.TriggerConfig resource property to the template. Information about notification triggers for the deployment group. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup.TriggerConfig resource property to the template. Information about notification triggers for the deployment group. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html .PARAMETER TriggerEvents The event type or types that trigger notifications. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggerevents DuplicatesAllowed: False PrimitiveItemType: String Type: List UpdateType: Mutable .PARAMETER TriggerName The name of the notification trigger. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggername PrimitiveType: String UpdateType: Mutable .PARAMETER TriggerTargetArn The ARN of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggertargetarn PrimitiveType: String UpdateType: Mutable .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroupTriggerConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $TriggerEvents, [parameter(Mandatory = $false)] [object] $TriggerName, [parameter(Mandatory = $false)] [object] $TriggerTargetArn ) Process { $obj = [CodeDeployDeploymentGroupTriggerConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSCodeDeployDeploymentGroupTriggerConfig' function New-VSCodeDeployApplication { <# .SYNOPSIS Adds an AWS::CodeDeploy::Application resource to the template. The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application. In CodeDeploy, an application is a name that functions as a container to ensure that the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment. You can use the AWS::CodeDeploy::DeploymentGroup resource to associate the application with a CodeDeploy deployment group. For more information, see CodeDeploy Deployments: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html in the *AWS CodeDeploy User Guide*. .DESCRIPTION Adds an AWS::CodeDeploy::Application resource to the template. The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application. In CodeDeploy, an application is a name that functions as a container to ensure that the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment. You can use the AWS::CodeDeploy::DeploymentGroup resource to associate the application with a CodeDeploy deployment group. For more information, see CodeDeploy Deployments: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html in the *AWS CodeDeploy User Guide*. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html .PARAMETER LogicalId The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance. .PARAMETER ApplicationName A name for the application. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name. For more information, see Name Type: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html. Updates to ApplicationName are not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-applicationname PrimitiveType: String UpdateType: Immutable .PARAMETER ComputePlatform The compute platform that CodeDeploy deploys the application to. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-computeplatform PrimitiveType: String UpdateType: Immutable .PARAMETER Tags + For configuring your deployment and specifying your application revisions, see AWS::CodeDeploy::DeploymentConfig: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html and AWS::CodeDeploy::DeploymentGroup: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-tags DuplicatesAllowed: True ItemType: Tag Type: List UpdateType: Mutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployApplication])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] [object] $ApplicationName, [parameter(Mandatory = $false)] [object] $ComputePlatform, [TransformTag()] [object] [parameter(Mandatory = $false)] $Tags, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [CodeDeployApplication]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSCodeDeployApplication' function New-VSCodeDeployDeploymentConfig { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentConfig resource to the template. The AWS::CodeDeploy::DeploymentConfig resource creates a set of deployment rules, deployment success conditions, and deployment failure conditions that AWS CodeDeploy uses during a deployment. The deployment configuration specifies, through the use of a MinimumHealthyHosts value, the number or percentage of instances that must remain available at any time during a deployment. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentConfig resource to the template. The AWS::CodeDeploy::DeploymentConfig resource creates a set of deployment rules, deployment success conditions, and deployment failure conditions that AWS CodeDeploy uses during a deployment. The deployment configuration specifies, through the use of a MinimumHealthyHosts value, the number or percentage of instances that must remain available at any time during a deployment. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html .PARAMETER LogicalId The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance. .PARAMETER ComputePlatform Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-computeplatform PrimitiveType: String UpdateType: Immutable .PARAMETER DeploymentConfigName A name for the deployment configuration. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name. For more information, see Name Type: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-deploymentconfigname PrimitiveType: String UpdateType: Immutable .PARAMETER MinimumHealthyHosts The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values: + HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value. + FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95. For more information about instance health, see CodeDeploy Instance Health: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html in the AWS CodeDeploy User Guide. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts Type: MinimumHealthyHosts UpdateType: Immutable .PARAMETER TrafficRoutingConfig Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-trafficroutingconfig Type: TrafficRoutingConfig UpdateType: Immutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] [object] $ComputePlatform, [parameter(Mandatory = $false)] [object] $DeploymentConfigName, [parameter(Mandatory = $false)] $MinimumHealthyHosts, [parameter(Mandatory = $false)] $TrafficRoutingConfig, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [CodeDeployDeploymentConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSCodeDeployDeploymentConfig' function New-VSCodeDeployDeploymentGroup { <# .SYNOPSIS Adds an AWS::CodeDeploy::DeploymentGroup resource to the template. The AWS::CodeDeploy::DeploymentGroup resource creates an AWS CodeDeploy deployment group that specifies which instances your application revisions are deployed to, along with other deployment options. For more information, see CreateDeploymentGroup: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html in the *CodeDeploy API Reference*. .DESCRIPTION Adds an AWS::CodeDeploy::DeploymentGroup resource to the template. The AWS::CodeDeploy::DeploymentGroup resource creates an AWS CodeDeploy deployment group that specifies which instances your application revisions are deployed to, along with other deployment options. For more information, see CreateDeploymentGroup: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html in the *CodeDeploy API Reference*. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html .PARAMETER LogicalId The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance. .PARAMETER AlarmConfiguration Information about the Amazon CloudWatch alarms that are associated with the deployment group. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-alarmconfiguration Type: AlarmConfiguration UpdateType: Mutable .PARAMETER ApplicationName The name of an existing CodeDeploy application to associate this deployment group with. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-applicationname PrimitiveType: String UpdateType: Immutable .PARAMETER AutoRollbackConfiguration Information about the automatic rollback configuration that is associated with the deployment group. If you specify this property, don't specify the Deployment property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration Type: AutoRollbackConfiguration UpdateType: Mutable .PARAMETER AutoScalingGroups A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created. Duplicates are not allowed. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autoscalinggroups DuplicatesAllowed: False PrimitiveItemType: String Type: List UpdateType: Mutable .PARAMETER BlueGreenDeploymentConfiguration Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration Type: BlueGreenDeploymentConfiguration UpdateType: Mutable .PARAMETER Deployment The application revision to deploy to this deployment group. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete. If you specify this property, don't specify the AutoRollbackConfiguration property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deployment Type: Deployment UpdateType: Mutable .PARAMETER DeploymentConfigName A deployment configuration name or a predefined configuration name. With predefined configurations, you can deploy application revisions to one instance at a time CodeDeployDefault.OneAtATime, half of the instances at a time CodeDeployDefault.HalfAtATime, or all the instances at once CodeDeployDefault.AllAtOnce. For more information and valid values, see Working with Deployment Configurations: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html in the *AWS CodeDeploy User Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentconfigname PrimitiveType: String UpdateType: Mutable .PARAMETER DeploymentGroupName A name for the deployment group. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name. For more information, see Name Type: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentgroupname PrimitiveType: String UpdateType: Immutable .PARAMETER DeploymentStyle Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer. If you specify this property with a blue/green deployment type, don't specify the AutoScalingGroups, LoadBalancerInfo, or Deployment properties. For blue/green deployments, AWS CloudFormation supports deployments on Lambda compute platforms only. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentstyle Type: DeploymentStyle UpdateType: Mutable .PARAMETER ECSServices Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ecsservices DuplicatesAllowed: False ItemType: ECSService Type: List UpdateType: Mutable .PARAMETER Ec2TagFilters The EC2 tags that are already applied to EC2 instances that you want to include in the deployment group. CodeDeploy includes all EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify EC2TagFilters or Ec2TagSet, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagfilters DuplicatesAllowed: False ItemType: EC2TagFilter Type: List UpdateType: Mutable .PARAMETER Ec2TagSet Information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilter. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagset Type: EC2TagSet UpdateType: Mutable .PARAMETER LoadBalancerInfo Information about the load balancer to use in a deployment. For more information, see Integrating CodeDeploy with Elastic Load Balancing : https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html in the *AWS CodeDeploy User Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo Type: LoadBalancerInfo UpdateType: Mutable .PARAMETER OnPremisesInstanceTagFilters The on-premises instance tags already applied to on-premises instances that you want to include in the deployment group. CodeDeploy includes all on-premises instances identified by any of the tags you specify in this deployment group. To register on-premises instances with CodeDeploy, see Working with On-Premises Instances for CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html in the *AWS CodeDeploy User Guide*. Duplicates are not allowed. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisesinstancetagfilters DuplicatesAllowed: False ItemType: TagFilter Type: List UpdateType: Mutable .PARAMETER OnPremisesTagSet Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all the tag groups. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisestagset Type: OnPremisesTagSet UpdateType: Mutable .PARAMETER OutdatedInstancesStrategy Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-outdatedinstancesstrategy PrimitiveType: String UpdateType: Mutable .PARAMETER ServiceRoleArn A service role Amazon Resource Name ARN that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see Create a Service Role for AWS CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html in the *AWS CodeDeploy User Guide*. In some cases, you might need to add a dependency on the service role's policy. For more information, see IAM role policy in DependsOn Attribute: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-servicerolearn PrimitiveType: String UpdateType: Mutable .PARAMETER Tags Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-tags DuplicatesAllowed: True ItemType: Tag Type: List UpdateType: Mutable .PARAMETER TriggerConfigurations Information about triggers associated with the deployment group. Duplicates are not allowed Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations DuplicatesAllowed: False ItemType: TriggerConfig Type: List UpdateType: Mutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([CodeDeployDeploymentGroup])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] $AlarmConfiguration, [parameter(Mandatory = $true)] [object] $ApplicationName, [parameter(Mandatory = $false)] $AutoRollbackConfiguration, [parameter(Mandatory = $false)] $AutoScalingGroups, [parameter(Mandatory = $false)] $BlueGreenDeploymentConfiguration, [parameter(Mandatory = $false)] $Deployment, [parameter(Mandatory = $false)] [object] $DeploymentConfigName, [parameter(Mandatory = $false)] [object] $DeploymentGroupName, [parameter(Mandatory = $false)] $DeploymentStyle, [parameter(Mandatory = $false)] [object] $ECSServices, [parameter(Mandatory = $false)] [object] $Ec2TagFilters, [parameter(Mandatory = $false)] $Ec2TagSet, [parameter(Mandatory = $false)] $LoadBalancerInfo, [parameter(Mandatory = $false)] [object] $OnPremisesInstanceTagFilters, [parameter(Mandatory = $false)] $OnPremisesTagSet, [parameter(Mandatory = $false)] [object] $OutdatedInstancesStrategy, [parameter(Mandatory = $true)] [object] $ServiceRoleArn, [TransformTag()] [object] [parameter(Mandatory = $false)] $Tags, [parameter(Mandatory = $false)] [object] $TriggerConfigurations, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [CodeDeployDeploymentGroup]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSCodeDeployDeploymentGroup' |