diff --git a/VaporShell/Public/Condition Functions/Add-ConIf.ps1 b/VaporShell/Public/Condition Functions/Add-ConIf.ps1 index a0ac0c2a5..e245b18c7 100644 --- a/VaporShell/Public/Condition Functions/Add-ConIf.ps1 +++ b/VaporShell/Public/Condition Functions/Add-ConIf.ps1 @@ -2,13 +2,13 @@ function Add-ConIf { <# .SYNOPSIS Adds the condition function "Fn::If" to a resource property - + .DESCRIPTION Returns one value if the specified condition evaluates to true and another value if the specified condition evaluates to false. Currently, AWS CloudFormation supports the Fn::If intrinsic function in the metadata attribute, update policy attribute, and property values in the Resources section and Outputs sections of a template. You can use the AWS::NoValue pseudo parameter as a return value to remove the corresponding property. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if - + .PARAMETER ConditionName A reference to a condition in the Conditions section. Use the condition's name to reference it. @@ -46,23 +46,23 @@ function Add-ConIf { $ConditionName, [parameter(Mandatory = $true,Position = 1)] [ValidateScript({ - $allowedTypes = "Vaporshell.Condition.If","Vaporshell.Function.Base64","Vaporshell.Function.FindInMap","Vaporshell.Function.GetAtt","Vaporshell.Function.GetAZs","Vaporshell.Function.Join","Vaporshell.Function.Select","Vaporshell.Function.Ref","System.String" + $allowedTypes = "Vaporshell.Condition.If","Vaporshell.Function.Base64","Vaporshell.Function.FindInMap","Vaporshell.Function.GetAtt","Vaporshell.Function.GetAZs","Vaporshell.Function.Join","Vaporshell.Function.Select","Vaporshell.Function.Ref","System.String","System.Boolean" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "The ValueToImport parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The ValueIfTrue parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] $ValueIfTrue, [parameter(Mandatory = $true,Position = 2)] [ValidateScript({ - $allowedTypes = "Vaporshell.Condition.If","Vaporshell.Function.Base64","Vaporshell.Function.FindInMap","Vaporshell.Function.GetAtt","Vaporshell.Function.GetAZs","Vaporshell.Function.Join","Vaporshell.Function.Select","Vaporshell.Function.Ref","System.String" + $allowedTypes = "Vaporshell.Condition.If","Vaporshell.Function.Base64","Vaporshell.Function.FindInMap","Vaporshell.Function.GetAtt","Vaporshell.Function.GetAZs","Vaporshell.Function.Join","Vaporshell.Function.Select","Vaporshell.Function.Ref","System.String","System.Boolean" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "The ValueToImport parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The ValueIfFalse parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] $ValueIfFalse @@ -72,4 +72,4 @@ function Add-ConIf { } $obj | Add-ObjectDetail -TypeName 'Vaporshell.Condition','Vaporshell.Condition.If' Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n`t$($obj | ConvertTo-Json -Depth 5 -Compress)`n" -} \ No newline at end of file +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSACMPCACertificateAuthorityCrlConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSACMPCACertificateAuthorityCrlConfiguration.ps1 index 82068c7a3..e88d96d89 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSACMPCACertificateAuthorityCrlConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSACMPCACertificateAuthorityCrlConfiguration.ps1 @@ -87,7 +87,7 @@ openssl crl -inform DER -text -in crl_path -noout ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAccessAnalyzerAnalyzerFilter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAccessAnalyzerAnalyzerFilter.ps1 index 5fff005b5..379d3a194 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAccessAnalyzerAnalyzerFilter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAccessAnalyzerAnalyzerFilter.ps1 @@ -61,7 +61,7 @@ The criteria that defines the rule. $Eq, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerEncryptionOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerEncryptionOptions.ps1 index b048d23a3..e65fb2c01 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerEncryptionOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerEncryptionOptions.ps1 @@ -44,7 +44,7 @@ Encryption options for the broker. $KmsKeyId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerInterBrokerCred.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerInterBrokerCred.ps1 new file mode 100644 index 000000000..0dc33a6df --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerInterBrokerCred.ps1 @@ -0,0 +1,72 @@ +function Add-VSAmazonMQBrokerInterBrokerCred { + <# + .SYNOPSIS + Adds an AWS::AmazonMQ::Broker.InterBrokerCred resource property to the template. + + .DESCRIPTION + Adds an AWS::AmazonMQ::Broker.InterBrokerCred resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html + + .PARAMETER Username + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html#cfn-amazonmq-broker-interbrokercred-username + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER Password + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-interbrokercred.html#cfn-amazonmq-broker-interbrokercred-password + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AmazonMQ.Broker.InterBrokerCred')] + [cmdletbinding()] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","Password")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","Password")] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Username, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Password + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AmazonMQ.Broker.InterBrokerCred' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapMetadata.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapMetadata.ps1 new file mode 100644 index 000000000..f1be0c06d --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapMetadata.ps1 @@ -0,0 +1,62 @@ +function Add-VSAmazonMQBrokerLdapMetadata { + <# + .SYNOPSIS + Adds an AWS::AmazonMQ::Broker.LdapMetadata resource property to the template. + + .DESCRIPTION + Adds an AWS::AmazonMQ::Broker.LdapMetadata resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html + + .PARAMETER InterBrokerCreds + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html#cfn-amazonmq-broker-ldapmetadata-interbrokercreds + ItemType: InterBrokerCred + UpdateType: Mutable + + .PARAMETER ServerMetadata + Type: ServerMetadata + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapmetadata.html#cfn-amazonmq-broker-ldapmetadata-servermetadata + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AmazonMQ.Broker.LdapMetadata')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.AmazonMQ.Broker.InterBrokerCred" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $InterBrokerCreds, + [parameter(Mandatory = $true)] + $ServerMetadata + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AmazonMQ.Broker.LdapMetadata' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapServerMetadata.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapServerMetadata.ps1 new file mode 100644 index 000000000..233e3f632 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLdapServerMetadata.ps1 @@ -0,0 +1,208 @@ +function Add-VSAmazonMQBrokerLdapServerMetadata { + <# + .SYNOPSIS + Adds an AWS::AmazonMQ::Broker.LdapServerMetadata resource property to the template. + + .DESCRIPTION + Adds an AWS::AmazonMQ::Broker.LdapServerMetadata resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html + + .PARAMETER Hosts + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-hosts + UpdateType: Mutable + + .PARAMETER UserRoleName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-userrolename + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserSearchMatching + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-usersearchmatching + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolename + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserBase + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-userbase + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserSearchSubtree + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-usersearchsubtree + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER RoleSearchMatching + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolesearchmatching + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER ServiceAccountUsername + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-serviceaccountusername + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleBase + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolebase + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER ServiceAccountPassword + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-serviceaccountpassword + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleSearchSubtree + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolesearchsubtree + PrimitiveType: Boolean + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AmazonMQ.Broker.LdapServerMetadata')] + [cmdletbinding()] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","ServiceAccountPassword")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","ServiceAccountPassword")] + Param + ( + [parameter(Mandatory = $true)] + $Hosts, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserRoleName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserSearchMatching, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserBase, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserSearchSubtree, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleSearchMatching, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ServiceAccountUsername, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleBase, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ServiceAccountPassword, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleSearchSubtree + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AmazonMQ.Broker.LdapServerMetadata' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLogList.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLogList.ps1 index aadfcb6ea..40da95b29 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLogList.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerLogList.ps1 @@ -33,7 +33,7 @@ The list of information about logs to be enabled for the specified broker. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -44,7 +44,7 @@ The list of information about logs to be enabled for the specified broker. $Audit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerServerMetadata.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerServerMetadata.ps1 new file mode 100644 index 000000000..d3a326fcc --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerServerMetadata.ps1 @@ -0,0 +1,208 @@ +function Add-VSAmazonMQBrokerServerMetadata { + <# + .SYNOPSIS + Adds an AWS::AmazonMQ::Broker.ServerMetadata resource property to the template. + + .DESCRIPTION + Adds an AWS::AmazonMQ::Broker.ServerMetadata resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html + + .PARAMETER Hosts + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-hosts + UpdateType: Mutable + + .PARAMETER UserRoleName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-userrolename + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserSearchMatching + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-usersearchmatching + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolename + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserBase + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-userbase + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER UserSearchSubtree + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-usersearchsubtree + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER RoleSearchMatching + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolesearchmatching + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER ServiceAccountUsername + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-serviceaccountusername + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleBase + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolebase + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER ServiceAccountPassword + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-serviceaccountpassword + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RoleSearchSubtree + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-servermetadata.html#cfn-amazonmq-broker-servermetadata-rolesearchsubtree + PrimitiveType: Boolean + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AmazonMQ.Broker.ServerMetadata')] + [cmdletbinding()] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","ServiceAccountPassword")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","ServiceAccountPassword")] + Param + ( + [parameter(Mandatory = $true)] + $Hosts, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserRoleName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserSearchMatching, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserBase, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserSearchSubtree, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleSearchMatching, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ServiceAccountUsername, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleBase, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ServiceAccountPassword, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleSearchSubtree + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AmazonMQ.Broker.ServerMetadata' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerUser.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerUser.ps1 index 2fc8769d8..9ffa7044b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerUser.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmazonMQBrokerUser.ps1 @@ -63,7 +63,7 @@ The list of ActiveMQ users (persons or applications who can access queues and to $Groups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppAutoBranchCreationConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppAutoBranchCreationConfig.ps1 index f008f36ea..7f359b665 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppAutoBranchCreationConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppAutoBranchCreationConfig.ps1 @@ -100,7 +100,7 @@ For more information, see Web Previews: https://docs.aws.amazon.com/amplify/late $EnvironmentVariables, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -124,7 +124,7 @@ For more information, see Web Previews: https://docs.aws.amazon.com/amplify/late $AutoBranchCreationPatterns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -135,7 +135,7 @@ For more information, see Web Previews: https://docs.aws.amazon.com/amplify/late $EnablePullRequestPreview, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppBasicAuthConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppBasicAuthConfig.ps1 index 8907a32a9..78f164c96 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppBasicAuthConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmplifyAppBasicAuthConfig.ps1 @@ -53,7 +53,7 @@ Use the BasicAuthConfig property type to set password protection at an app level $Username, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAmplifyBranchBasicAuthConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAmplifyBranchBasicAuthConfig.ps1 index 243884a22..7618be987 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAmplifyBranchBasicAuthConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAmplifyBranchBasicAuthConfig.ps1 @@ -53,7 +53,7 @@ Use the BasicAuthConfig property type to set password protection for a specific $Username, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentCanarySetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentCanarySetting.ps1 index 12d310ba9..6e6e44617 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentCanarySetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentCanarySetting.ps1 @@ -44,7 +44,7 @@ CanarySetting is a property of the StageDescription: https://docs.aws.amazon.com ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -58,7 +58,7 @@ CanarySetting is a property of the StageDescription: https://docs.aws.amazon.com $StageVariableOverrides, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentDeploymentCanarySettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentDeploymentCanarySettings.ps1 index e48ac5c3d..77c0b698e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentDeploymentCanarySettings.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentDeploymentCanarySettings.ps1 @@ -43,7 +43,7 @@ Duplicates are not allowed. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -57,7 +57,7 @@ Duplicates are not allowed. $StageVariableOverrides, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentMethodSetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentMethodSetting.ps1 index 0530b3a8b..f8ce04358 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentMethodSetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentMethodSetting.ps1 @@ -91,7 +91,7 @@ The MethodSettings property of the Amazon API Gateway Deployment StageDescriptio ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -113,7 +113,7 @@ The MethodSettings property of the Amazon API Gateway Deployment StageDescriptio $CacheTtlInSeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -124,7 +124,7 @@ The MethodSettings property of the Amazon API Gateway Deployment StageDescriptio $CachingEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -157,7 +157,7 @@ The MethodSettings property of the Amazon API Gateway Deployment StageDescriptio $LoggingLevel, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -190,7 +190,7 @@ The MethodSettings property of the Amazon API Gateway Deployment StageDescriptio $ThrottlingBurstLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentStageDescription.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentStageDescription.ps1 index e7c553199..2ddfec4cf 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentStageDescription.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayDeploymentStageDescription.ps1 @@ -161,7 +161,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $AccessLogSetting, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -183,7 +183,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $CacheClusterSize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -205,7 +205,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $CacheTtlInSeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -229,7 +229,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $ClientCertificateId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -284,7 +284,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $MethodSettings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -309,7 +309,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $ThrottlingBurstLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -320,7 +320,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $ThrottlingRateLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageCanarySetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageCanarySetting.ps1 index c08db2714..a992a619f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageCanarySetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageCanarySetting.ps1 @@ -63,7 +63,7 @@ Duplicates are not allowed. $DeploymentId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -77,7 +77,7 @@ Duplicates are not allowed. $StageVariableOverrides, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageMethodSetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageMethodSetting.ps1 index 79ab42744..25fc50d9b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageMethodSetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayStageMethodSetting.ps1 @@ -91,7 +91,7 @@ The MethodSettings property of the AWS::ApiGateway::Stage resource contains a li ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -113,7 +113,7 @@ The MethodSettings property of the AWS::ApiGateway::Stage resource contains a li $CacheTtlInSeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -124,7 +124,7 @@ The MethodSettings property of the AWS::ApiGateway::Stage resource contains a li $CachingEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -157,7 +157,7 @@ The MethodSettings property of the AWS::ApiGateway::Stage resource contains a li $LoggingLevel, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -190,7 +190,7 @@ The MethodSettings property of the AWS::ApiGateway::Stage resource contains a li $ThrottlingBurstLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayUsagePlanThrottleSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayUsagePlanThrottleSettings.ps1 index 58261793c..e5b6a1d0a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayUsagePlanThrottleSettings.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayUsagePlanThrottleSettings.ps1 @@ -44,7 +44,7 @@ ThrottleSettings is a property of the AWS::ApiGateway::UsagePlan: https://docs.a $BurstLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiCors.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiCors.ps1 index 1013a9e60..161a2cfc2 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiCors.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiCors.ps1 @@ -69,7 +69,7 @@ The Cors property specifies a CORS configuration for an API. Supported only for $AllowOrigins, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesAccessLogSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesAccessLogSettings.ps1 new file mode 100644 index 000000000..fed9678ef --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesAccessLogSettings.ps1 @@ -0,0 +1,74 @@ +function Add-VSApiGatewayV2ApiGatewayManagedOverridesAccessLogSettings { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings resource property to the template. The AccessLogSettings property overrides the access log settings for an API Gateway-managed stage. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings resource property to the template. +The AccessLogSettings property overrides the access log settings for an API Gateway-managed stage. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html + + .PARAMETER Format + A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-format + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER DestinationArn + The ARN of the CloudWatch Logs log group to receive access logs. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-destinationarn + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.AccessLogSettings')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Format, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DestinationArn + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.AccessLogSettings' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesIntegrationOverrides.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesIntegrationOverrides.ps1 new file mode 100644 index 000000000..8ca335b7b --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesIntegrationOverrides.ps1 @@ -0,0 +1,110 @@ +function Add-VSApiGatewayV2ApiGatewayManagedOverridesIntegrationOverrides { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides resource property to the template. The IntegrationOverrides property overrides the integration settings for an API Gateway-managed integration. If you remove this property, API Gateway restores the default values. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides resource property to the template. +The IntegrationOverrides property overrides the integration settings for an API Gateway-managed integration. If you remove this property, API Gateway restores the default values. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html + + .PARAMETER Description + The description of the integration. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-description + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER PayloadFormatVersion + Specifies the format of the payload sent to an integration. Required for HTTP APIs. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-payloadformatversion + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER TimeoutInMillis + Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-timeoutinmillis + PrimitiveType: Integer + UpdateType: Mutable + + .PARAMETER IntegrationMethod + Specifies the integration's HTTP method type. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-integrationmethod + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.IntegrationOverrides')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PayloadFormatVersion, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TimeoutInMillis, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $IntegrationMethod + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.IntegrationOverrides' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteOverrides.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteOverrides.ps1 new file mode 100644 index 000000000..8dd333125 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteOverrides.ps1 @@ -0,0 +1,120 @@ +function Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteOverrides { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides resource property to the template. The RouteOverrides property overrides the route configuration for an API Gateway-managed route. If you remove this property, API Gateway restores the default values. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides resource property to the template. +The RouteOverrides property overrides the route configuration for an API Gateway-managed route. If you remove this property, API Gateway restores the default values. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html + + .PARAMETER Target + For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-target + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER AuthorizerId + The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizerid + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER OperationName + The operation name for the route. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-operationname + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER AuthorizationScopes + The authorization scopes supported by this route. + + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationscopes + UpdateType: Mutable + + .PARAMETER AuthorizationType + The authorization type for the route. For HTTP APIs, valid values are NONE for open access, or JWT for using JSON Web Tokens. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationtype + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.RouteOverrides')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Target, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AuthorizerId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OperationName, + [parameter(Mandatory = $false)] + $AuthorizationScopes, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AuthorizationType + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.RouteOverrides' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteSettings.ps1 new file mode 100644 index 000000000..f370f3ee9 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteSettings.ps1 @@ -0,0 +1,128 @@ +function Add-VSApiGatewayV2ApiGatewayManagedOverridesRouteSettings { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings resource property to the template. The RouteSettings property overrides the route settings for an API Gateway-managed route. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings resource property to the template. +The RouteSettings property overrides the route settings for an API Gateway-managed route. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html + + .PARAMETER LoggingLevel + Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-logginglevel + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER DataTraceEnabled + Specifies whether true or not false data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-datatraceenabled + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER ThrottlingBurstLimit + Specifies the throttling burst limit. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingburstlimit + PrimitiveType: Integer + UpdateType: Mutable + + .PARAMETER DetailedMetricsEnabled + Specifies whether detailed metrics are enabled. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-detailedmetricsenabled + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER ThrottlingRateLimit + Specifies the throttling rate limit. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingratelimit + PrimitiveType: Double + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.RouteSettings')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $LoggingLevel, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DataTraceEnabled, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ThrottlingBurstLimit, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DetailedMetricsEnabled, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ThrottlingRateLimit + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.RouteSettings' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesStageOverrides.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesStageOverrides.ps1 new file mode 100644 index 000000000..aaab4a91e --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2ApiGatewayManagedOverridesStageOverrides.ps1 @@ -0,0 +1,156 @@ +function Add-VSApiGatewayV2ApiGatewayManagedOverridesStageOverrides { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides resource property to the template. The StageOverrides property overrides the stage configuration for an API Gateway-managed stage. If you remove this property, API Gateway restores the default values. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides resource property to the template. +The StageOverrides property overrides the stage configuration for an API Gateway-managed stage. If you remove this property, API Gateway restores the default values. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html + + .PARAMETER Description + The description for the API stage. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-description + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER AccessLogSettings + Settings for logging access in a stage. + + Type: AccessLogSettings + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-accesslogsettings + UpdateType: Mutable + + .PARAMETER AutoDeploy + Specifies whether updates to an API automatically trigger a new deployment. The default value is true. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-autodeploy + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER RouteSettings + Route settings for the stage. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-routesettings + PrimitiveType: Json + UpdateType: Mutable + + .PARAMETER StageVariables + A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match A-Za-z0-9-._~:/?#&=,]+. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-stagevariables + PrimitiveType: Json + UpdateType: Mutable + + .PARAMETER DefaultRouteSettings + The default route settings for the stage. + + Type: RouteSettings + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-defaultroutesettings + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.StageOverrides')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $false)] + $AccessLogSettings, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AutoDeploy, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","System.Collections.Hashtable","System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RouteSettings, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","System.Collections.Hashtable","System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $StageVariables, + [parameter(Mandatory = $false)] + $DefaultRouteSettings + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + RouteSettings { + if (($PSBoundParameters[$key]).PSObject.TypeNames -contains "System.String"){ + try { + $JSONObject = (ConvertFrom-Json -InputObject $PSBoundParameters[$key] -ErrorAction Stop) + } + catch { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "Unable to convert parameter '$key' string value to PSObject! Please use a JSON string OR provide a Hashtable or PSCustomObject instead!")) + } + } + else { + $JSONObject = ([PSCustomObject]$PSBoundParameters[$key]) + } + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $JSONObject + } + StageVariables { + if (($PSBoundParameters[$key]).PSObject.TypeNames -contains "System.String"){ + try { + $JSONObject = (ConvertFrom-Json -InputObject $PSBoundParameters[$key] -ErrorAction Stop) + } + catch { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "Unable to convert parameter '$key' string value to PSObject! Please use a JSON string OR provide a Hashtable or PSCustomObject instead!")) + } + } + else { + $JSONObject = ([PSCustomObject]$PSBoundParameters[$key]) + } + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $JSONObject + } + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides.StageOverrides' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteParameterConstraints.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteParameterConstraints.ps1 index efedd9f3f..69b2af10d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteParameterConstraints.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteParameterConstraints.ps1 @@ -26,7 +26,7 @@ Specifies whether the parameter is required. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteResponseParameterConstraints.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteResponseParameterConstraints.ps1 index 95e206c5d..f7c682b8f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteResponseParameterConstraints.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2RouteResponseParameterConstraints.ps1 @@ -26,7 +26,7 @@ Specifies whether the parameter is required. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2StageRouteSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2StageRouteSettings.ps1 index 32989e61a..b7373a5da 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2StageRouteSettings.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApiGatewayV2StageRouteSettings.ps1 @@ -65,7 +65,7 @@ Represents a collection of route settings. $LoggingLevel, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -87,7 +87,7 @@ Represents a collection of route settings. $ThrottlingBurstLimit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -98,7 +98,7 @@ Represents a collection of route settings. $DetailedMetricsEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRoute.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRoute.ps1 index 6400d92e1..fa4d32a15 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRoute.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRoute.ps1 @@ -17,6 +17,13 @@ An object that represents a gRPC route type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-action UpdateType: Mutable + .PARAMETER Timeout + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: GrpcTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-timeout + UpdateType: Mutable + .PARAMETER RetryPolicy An object that represents a retry policy. @@ -41,6 +48,8 @@ An object that represents a gRPC route type. [parameter(Mandatory = $true)] $Action, [parameter(Mandatory = $false)] + $Timeout, + [parameter(Mandatory = $false)] $RetryPolicy, [parameter(Mandatory = $true)] $Match diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRouteMetadata.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRouteMetadata.ps1 index 4e67a4238..7299e85b6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRouteMetadata.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcRouteMetadata.ps1 @@ -40,7 +40,7 @@ An object that represents the match metadata for the route. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcTimeout.ps1 new file mode 100644 index 000000000..3b9c57342 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteGrpcTimeout.ps1 @@ -0,0 +1,52 @@ +function Add-VSAppMeshRouteGrpcTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::Route.GrpcTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::Route.GrpcTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html + + .PARAMETER PerRequest + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html#cfn-appmesh-route-grpctimeout-perrequest + UpdateType: Mutable + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html#cfn-appmesh-route-grpctimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.Route.GrpcTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $PerRequest, + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.Route.GrpcTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRoute.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRoute.ps1 index c0098e338..39cc74f3e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRoute.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRoute.ps1 @@ -17,6 +17,13 @@ An object that represents an HTTP or HTTP/2 route type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-action UpdateType: Mutable + .PARAMETER Timeout + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: HttpTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-timeout + UpdateType: Mutable + .PARAMETER RetryPolicy An object that represents a retry policy. @@ -41,6 +48,8 @@ An object that represents an HTTP or HTTP/2 route type. [parameter(Mandatory = $true)] $Action, [parameter(Mandatory = $false)] + $Timeout, + [parameter(Mandatory = $false)] $RetryPolicy, [parameter(Mandatory = $true)] $Match diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRouteHeader.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRouteHeader.ps1 index ddd533126..a6d19e517 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRouteHeader.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpRouteHeader.ps1 @@ -40,7 +40,7 @@ An object that represents the HTTP header in the request. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpTimeout.ps1 new file mode 100644 index 000000000..d08c63528 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteHttpTimeout.ps1 @@ -0,0 +1,52 @@ +function Add-VSAppMeshRouteHttpTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::Route.HttpTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::Route.HttpTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html + + .PARAMETER PerRequest + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html#cfn-appmesh-route-httptimeout-perrequest + UpdateType: Mutable + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html#cfn-appmesh-route-httptimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.Route.HttpTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $PerRequest, + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.Route.HttpTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpRoute.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpRoute.ps1 index a96ca336c..f015bd91c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpRoute.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpRoute.ps1 @@ -17,6 +17,13 @@ An object that represents a TCP route type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-action UpdateType: Mutable + .PARAMETER Timeout + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: TcpTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-timeout + UpdateType: Mutable + .FUNCTIONALITY Vaporshell #> @@ -25,7 +32,9 @@ An object that represents a TCP route type. Param ( [parameter(Mandatory = $true)] - $Action + $Action, + [parameter(Mandatory = $false)] + $Timeout ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpTimeout.ps1 new file mode 100644 index 000000000..68d341e2a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshRouteTcpTimeout.ps1 @@ -0,0 +1,45 @@ +function Add-VSAppMeshRouteTcpTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::Route.TcpTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::Route.TcpTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html#cfn-appmesh-route-tcptimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.Route.TcpTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.Route.TcpTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeClientPolicyTls.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeClientPolicyTls.ps1 index 5a5686e0f..e6367ff17 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeClientPolicyTls.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeClientPolicyTls.ps1 @@ -43,7 +43,7 @@ A reference to an object that represents a Transport Layer Security (TLS client $Validation, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeDuration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeDuration.ps1 new file mode 100644 index 000000000..965973cf1 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeDuration.ps1 @@ -0,0 +1,70 @@ +function Add-VSAppMeshVirtualNodeDuration { + <# + .SYNOPSIS + Adds an AWS::AppMesh::VirtualNode.Duration resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::VirtualNode.Duration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html + + .PARAMETER Value + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html#cfn-appmesh-virtualnode-duration-value + PrimitiveType: Integer + UpdateType: Mutable + + .PARAMETER Unit + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html#cfn-appmesh-virtualnode-duration-unit + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.VirtualNode.Duration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Value, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Unit + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.VirtualNode.Duration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeGrpcTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeGrpcTimeout.ps1 new file mode 100644 index 000000000..c00e36d19 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeGrpcTimeout.ps1 @@ -0,0 +1,52 @@ +function Add-VSAppMeshVirtualNodeGrpcTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::VirtualNode.GrpcTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::VirtualNode.GrpcTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html + + .PARAMETER PerRequest + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html#cfn-appmesh-virtualnode-grpctimeout-perrequest + UpdateType: Mutable + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html#cfn-appmesh-virtualnode-grpctimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.VirtualNode.GrpcTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $PerRequest, + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.VirtualNode.GrpcTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeHttpTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeHttpTimeout.ps1 new file mode 100644 index 000000000..256d0b69a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeHttpTimeout.ps1 @@ -0,0 +1,52 @@ +function Add-VSAppMeshVirtualNodeHttpTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::VirtualNode.HttpTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::VirtualNode.HttpTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html + + .PARAMETER PerRequest + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html#cfn-appmesh-virtualnode-httptimeout-perrequest + UpdateType: Mutable + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html#cfn-appmesh-virtualnode-httptimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.VirtualNode.HttpTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $PerRequest, + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.VirtualNode.HttpTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListener.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListener.ps1 index 38a269394..766d5eaee 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListener.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListener.ps1 @@ -10,6 +10,13 @@ An object that represents a listener for a virtual node. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html + .PARAMETER Timeout + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: ListenerTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-timeout + UpdateType: Mutable + .PARAMETER HealthCheck The health check information for the listener. @@ -38,6 +45,8 @@ An object that represents a listener for a virtual node. [cmdletbinding()] Param ( + [parameter(Mandatory = $false)] + $Timeout, [parameter(Mandatory = $false)] $HealthCheck, [parameter(Mandatory = $false)] diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListenerTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListenerTimeout.ps1 new file mode 100644 index 000000000..7a775e769 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeListenerTimeout.ps1 @@ -0,0 +1,66 @@ +function Add-VSAppMeshVirtualNodeListenerTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::VirtualNode.ListenerTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::VirtualNode.ListenerTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html + + .PARAMETER TCP + Type: TcpTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-tcp + UpdateType: Mutable + + .PARAMETER HTTP2 + Type: HttpTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-http2 + UpdateType: Mutable + + .PARAMETER HTTP + Type: HttpTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-http + UpdateType: Mutable + + .PARAMETER GRPC + Type: GrpcTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-grpc + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.VirtualNode.ListenerTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $TCP, + [parameter(Mandatory = $false)] + $HTTP2, + [parameter(Mandatory = $false)] + $HTTP, + [parameter(Mandatory = $false)] + $GRPC + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.VirtualNode.ListenerTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeTcpTimeout.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeTcpTimeout.ps1 new file mode 100644 index 000000000..81c3e3af6 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAppMeshVirtualNodeTcpTimeout.ps1 @@ -0,0 +1,45 @@ +function Add-VSAppMeshVirtualNodeTcpTimeout { + <# + .SYNOPSIS + Adds an AWS::AppMesh::VirtualNode.TcpTimeout resource property to the template. + + .DESCRIPTION + Adds an AWS::AppMesh::VirtualNode.TcpTimeout resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html + + .PARAMETER Idle + Type: Duration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html#cfn-appmesh-virtualnode-tcptimeout-idle + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.AppMesh.VirtualNode.TcpTimeout')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $Idle + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppMesh.VirtualNode.TcpTimeout' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppStreamStackApplicationSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppStreamStackApplicationSettings.ps1 index 37cc25603..65824247b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppStreamStackApplicationSettings.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppStreamStackApplicationSettings.ps1 @@ -44,7 +44,7 @@ The persistent application settings for users of a stack. $SettingsGroup, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppSyncDataSourceDynamoDBConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppSyncDataSourceDynamoDBConfig.ps1 index 01b985c5f..e24aa69fe 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppSyncDataSourceDynamoDBConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppSyncDataSourceDynamoDBConfig.ps1 @@ -80,7 +80,7 @@ DynamoDBConfig is a property of the AWS::AppSync::DataSource: https://docs.aws.a $AwsRegion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -93,7 +93,7 @@ DynamoDBConfig is a property of the AWS::AppSync::DataSource: https://docs.aws.a $DeltaSyncConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiLogConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiLogConfig.ps1 index e79338654..8bb272949 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiLogConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiLogConfig.ps1 @@ -61,7 +61,7 @@ LogConfig is a property of the AWS::AppSync::GraphQLApi: https://docs.aws.amazon $CloudWatchLogsRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiOpenIDConnectConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiOpenIDConnectConfig.ps1 index 26fb0ea94..1616491b2 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiOpenIDConnectConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppSyncGraphQLApiOpenIDConnectConfig.ps1 @@ -71,7 +71,7 @@ OpenIDConnectConfig is a property of the AWS::AppSync::GraphQLApi: https://docs. $ClientId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -82,7 +82,7 @@ OpenIDConnectConfig is a property of the AWS::AppSync::GraphQLApi: https://docs. $AuthTTL, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAppSyncResolverCachingConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAppSyncResolverCachingConfig.ps1 index d0aa06065..942223799 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAppSyncResolverCachingConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAppSyncResolverCachingConfig.ps1 @@ -38,7 +38,7 @@ Valid values are between 1 and 3600 seconds. $CachingKeys, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalableTargetSuspendedState.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalableTargetSuspendedState.ps1 index 16e14c824..da170c631 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalableTargetSuspendedState.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalableTargetSuspendedState.ps1 @@ -40,7 +40,7 @@ Specifies whether the scaling activities for a scalable target are in a suspende ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -51,7 +51,7 @@ Specifies whether the scaling activities for a scalable target are in a suspende $DynamicScalingInSuspended, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -62,7 +62,7 @@ Specifies whether the scaling activities for a scalable target are in a suspende $DynamicScalingOutSuspended, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyStepAdjustment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyStepAdjustment.ps1 index 20113d370..a8beea1a7 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyStepAdjustment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyStepAdjustment.ps1 @@ -52,7 +52,7 @@ You must specify at least one upper or lower bound. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -63,7 +63,7 @@ You must specify at least one upper or lower bound. $MetricIntervalLowerBound, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.ps1 index e98fdc48b..62f26b67f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSApplicationAutoScalingScalingPolicyTargetTrackingScalingPolicyConfiguration.ps1 @@ -95,7 +95,7 @@ For all other scalable targets, the default value is 0: $CustomizedMetricSpecification, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -130,7 +130,7 @@ For all other scalable targets, the default value is 0: $ScaleOutCooldown, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAthenaDataCatalogTags.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAthenaDataCatalogTags.ps1 new file mode 100644 index 000000000..35c4337b8 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSAthenaDataCatalogTags.ps1 @@ -0,0 +1,47 @@ +function Add-VSAthenaDataCatalogTags { + <# + .SYNOPSIS + Adds an AWS::Athena::DataCatalog.Tags resource property to the template. + + .DESCRIPTION + Adds an AWS::Athena::DataCatalog.Tags resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-datacatalog-tags.html + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-datacatalog-tags.html#cfn-athena-datacatalog-tags-tags + UpdateType: Mutable + Type: List + ItemType: Tag + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Athena.DataCatalog.Tags')] + [cmdletbinding()] + Param + ( + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Athena.DataCatalog.Tags' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupResultConfigurationUpdates.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupResultConfigurationUpdates.ps1 index 6da582a2a..03b6329fa 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupResultConfigurationUpdates.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupResultConfigurationUpdates.ps1 @@ -60,7 +60,7 @@ The information about the updates in the query results, such as output location $OutputLocation, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -71,7 +71,7 @@ The information about the updates in the query results, such as output location $RemoveEncryptionConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfiguration.ps1 index 7e399fe84..084be5cad 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfiguration.ps1 @@ -66,7 +66,7 @@ This property currently supports integer types. Support for long values is plann $BytesScannedCutoffPerQuery, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -77,7 +77,7 @@ This property currently supports integer types. Support for long values is plann $EnforceWorkGroupConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -88,7 +88,7 @@ This property currently supports integer types. Support for long values is plann $PublishCloudWatchMetricsEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfigurationUpdates.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfigurationUpdates.ps1 index 3bb746dc1..910eb938a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfigurationUpdates.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAthenaWorkGroupWorkGroupConfigurationUpdates.ps1 @@ -73,7 +73,7 @@ This property currently supports integer types. Support for long values is plann $BytesScannedCutoffPerQuery, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -84,7 +84,7 @@ This property currently supports integer types. Support for long values is plann $EnforceWorkGroupConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -95,7 +95,7 @@ This property currently supports integer types. Support for long values is plann $PublishCloudWatchMetricsEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -108,7 +108,7 @@ This property currently supports integer types. Support for long values is plann $ResultConfigurationUpdates, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingAutoScalingGroupTagProperty.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingAutoScalingGroupTagProperty.ps1 index 3da4d1619..5e4a261db 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingAutoScalingGroupTagProperty.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingAutoScalingGroupTagProperty.ps1 @@ -61,7 +61,7 @@ AWS CloudFormation adds the following tags to all Auto Scaling groups and associ $Key, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDevice.ps1 index 07215fc49..c6af6f689 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDevice.ps1 @@ -71,7 +71,7 @@ Valid values: standard | io1 | gp2 | st1 | sc1 ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -82,7 +82,7 @@ Valid values: standard | io1 | gp2 | st1 | sc1 $DeleteOnTermination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDeviceMapping.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDeviceMapping.ps1 index fa1e23497..f8798d98e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDeviceMapping.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingLaunchConfigurationBlockDeviceMapping.ps1 @@ -68,7 +68,7 @@ You can specify either VirtualName or Ebs, but not both. $Ebs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanScalingInstruction.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanScalingInstruction.ps1 index 075078cba..a22e11229 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanScalingInstruction.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanScalingInstruction.ps1 @@ -151,7 +151,7 @@ Valid only when configuring predictive scaling. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanTargetTrackingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanTargetTrackingConfiguration.ps1 index 7ff9ffcdf..291fa3df9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanTargetTrackingConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingPlansScalingPlanTargetTrackingConfiguration.ps1 @@ -80,7 +80,7 @@ The default value is false. $ScaleOutCooldown, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -93,7 +93,7 @@ The default value is false. $PredefinedScalingMetricSpecification, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyStepAdjustment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyStepAdjustment.ps1 index 5fcbf1150..1050ea3c3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyStepAdjustment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyStepAdjustment.ps1 @@ -60,7 +60,7 @@ You can find a sample template snippet in the Examples: https://docs.aws.amazon. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -71,7 +71,7 @@ You can find a sample template snippet in the Examples: https://docs.aws.amazon. $MetricIntervalLowerBound, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyTargetTrackingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyTargetTrackingConfiguration.ps1 index 3297ffac4..20199e8ff 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyTargetTrackingConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSAutoScalingScalingPolicyTargetTrackingConfiguration.ps1 @@ -51,7 +51,7 @@ For more information, see PutScalingPolicy: https://docs.aws.amazon.com/autoscal $CustomizedMetricSpecification, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -64,7 +64,7 @@ For more information, see PutScalingPolicy: https://docs.aws.amazon.com/autoscal $PredefinedMetricSpecification, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanBackupRuleResourceType.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanBackupRuleResourceType.ps1 index 4daeb47ea..5caff1725 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanBackupRuleResourceType.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanBackupRuleResourceType.ps1 @@ -76,7 +76,7 @@ Specifies an object containing properties used to schedule a task to back up a s ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -133,7 +133,7 @@ Specifies an object containing properties used to schedule a task to back up a s $TargetBackupVault, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanLifecycleResourceType.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanLifecycleResourceType.ps1 index 42dbe2e74..cf3aee96d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanLifecycleResourceType.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBackupBackupPlanLifecycleResourceType.ps1 @@ -33,7 +33,7 @@ Specifies an object containing an array of Transition objects that determine how ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -44,7 +44,7 @@ Specifies an object containing an array of Transition objects that determine how $DeleteAfterDays, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionContainerProperties.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionContainerProperties.ps1 index 38227478b..9c898ebed 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionContainerProperties.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionContainerProperties.ps1 @@ -159,7 +159,7 @@ Environment variables must not start with AWS_BATCH; this naming convention is r $Memory, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -183,7 +183,7 @@ Environment variables must not start with AWS_BATCH; this naming convention is r $JobRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionMountPoints.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionMountPoints.ps1 index 6b9a5f685..3aa4f9d27 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionMountPoints.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBatchJobDefinitionMountPoints.ps1 @@ -40,7 +40,7 @@ Details on a Docker volume mount point that is used in a job's container propert ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetCostTypes.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetCostTypes.ps1 index 0a2932d70..ab27b370b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetCostTypes.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetCostTypes.ps1 @@ -109,7 +109,7 @@ The default value is true. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -120,7 +120,7 @@ The default value is true. $IncludeSupport, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -131,7 +131,7 @@ The default value is true. $IncludeOtherSubscription, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -142,7 +142,7 @@ The default value is true. $IncludeTax, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -153,7 +153,7 @@ The default value is true. $IncludeSubscription, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -164,7 +164,7 @@ The default value is true. $UseBlended, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -175,7 +175,7 @@ The default value is true. $IncludeUpfront, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -186,7 +186,7 @@ The default value is true. $IncludeDiscount, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -197,7 +197,7 @@ The default value is true. $IncludeCredit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -208,7 +208,7 @@ The default value is true. $IncludeRecurring, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -219,7 +219,7 @@ The default value is true. $UseAmortized, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetNotification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetNotification.ps1 index 9290a03a4..05f335b40 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetNotification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetNotification.ps1 @@ -81,7 +81,7 @@ For example, if you have a budget for 200 dollars and you want to be notified wh $NotificationType, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetSpend.ps1 b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetSpend.ps1 index a370bf10d..b264504e7 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetSpend.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSBudgetsBudgetSpend.ps1 @@ -39,7 +39,7 @@ For example, a Spend for 3 GB of S3 usage would have the following parameters: ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCertificateManagerCertificateDomainValidationOption.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCertificateManagerCertificateDomainValidationOption.ps1 index 11624552d..d76aece9d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCertificateManagerCertificateDomainValidationOption.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCertificateManagerCertificateDomainValidationOption.ps1 @@ -17,6 +17,13 @@ DomainValidationOption is a property of the AWS::CertificateManager::Certificate PrimitiveType: String UpdateType: Mutable + .PARAMETER HostedZoneId + *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-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-hostedzoneid + PrimitiveType: String + UpdateType: Mutable + .PARAMETER ValidationDomain The domain name to which you want ACM to send validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or a superdomain of the DomainName value. For example, if you request a certificate for testing.example.com, you can specify example.com as this value. In that case, ACM sends domain validation emails to the following five addresses: + admin@example.com @@ -47,7 +54,18 @@ DomainValidationOption is a property of the AWS::CertificateManager::Certificate } })] $DomainName, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HostedZoneId, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCacheBehavior.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCacheBehavior.ps1 index 92a229f4a..35c0c47c6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCacheBehavior.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCacheBehavior.ps1 @@ -126,6 +126,13 @@ If you pick the second choice for your Amazon S3 Origin, you may need to forward Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-forwardedvalues UpdateType: Mutable + .PARAMETER OriginRequestPolicyId + + CacheBehavior: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CacheBehavior.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-originrequestpolicyid + PrimitiveType: String + UpdateType: Mutable + .PARAMETER MinTTL The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache Expiration: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html in the * Amazon CloudFront Developer Guide*. You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin under Headers, if you specify 1 for Quantity and * for Name. @@ -134,6 +141,13 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers PrimitiveType: Double UpdateType: Mutable + .PARAMETER CachePolicyId + + CacheBehavior: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CacheBehavior.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-cachepolicyid + PrimitiveType: String + UpdateType: Mutable + .PARAMETER MaxTTL The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache Expiration: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html in the *Amazon CloudFront Developer Guide*. @@ -150,7 +164,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -196,7 +210,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $TrustedSigners, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -233,7 +247,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $CachedMethods, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -242,11 +256,22 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers } })] $SmoothStreaming, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $ForwardedValues, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OriginRequestPolicyId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -257,7 +282,18 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $MinTTL, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CachePolicyId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCustomErrorResponse.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCustomErrorResponse.ps1 index dc2af15d3..739b5cee3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCustomErrorResponse.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionCustomErrorResponse.ps1 @@ -73,7 +73,7 @@ We recommend that you store custom error pages in an Amazon S3 bucket. If you st $ResponseCode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDefaultCacheBehavior.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDefaultCacheBehavior.ps1 index 346eb3b3a..7d66ae813 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDefaultCacheBehavior.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDefaultCacheBehavior.ps1 @@ -104,6 +104,13 @@ If you pick the second choice for your Amazon S3 Origin, you may need to forward Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-forwardedvalues UpdateType: Mutable + .PARAMETER OriginRequestPolicyId + + DefaultCacheBehavior: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DefaultCacheBehavior.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-originrequestpolicyid + PrimitiveType: String + UpdateType: Mutable + .PARAMETER MinTTL The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache Expiration: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html in the *Amazon CloudFront Developer Guide*. You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin under Headers, if you specify 1 for Quantity and * for Name. @@ -112,6 +119,13 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers PrimitiveType: Double UpdateType: Mutable + .PARAMETER CachePolicyId + + DefaultCacheBehavior: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DefaultCacheBehavior.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-cachepolicyid + PrimitiveType: String + UpdateType: Mutable + .PARAMETER MaxTTL The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache Expiration: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html in the *Amazon CloudFront Developer Guide*. @@ -128,7 +142,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -174,7 +188,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $TrustedSigners, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -200,7 +214,7 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $CachedMethods, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -209,11 +223,22 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers } })] $SmoothStreaming, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $ForwardedValues, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OriginRequestPolicyId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -224,7 +249,18 @@ You must specify 0 for MinTTL if you configure CloudFront to forward all headers $MinTTL, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CachePolicyId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDistributionConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDistributionConfig.ps1 index 69cbbe7b7..c106c6a75 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDistributionConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionDistributionConfig.ps1 @@ -221,7 +221,7 @@ In general, configuring CloudFront to communicate with viewers using HTTP/2 redu $OriginGroups, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -234,7 +234,7 @@ In general, configuring CloudFront to communicate with viewers using HTTP/2 redu $Aliases, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionForwardedValues.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionForwardedValues.ps1 index 56b3cc44c..367c8c492 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionForwardedValues.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionForwardedValues.ps1 @@ -58,7 +58,7 @@ For more information, see Configuring CloudFront to Cache Based on Query String $Headers, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLambdaFunctionAssociation.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLambdaFunctionAssociation.ps1 index 9668668b5..9e78ae54c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLambdaFunctionAssociation.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLambdaFunctionAssociation.ps1 @@ -45,7 +45,7 @@ If the origin returns an HTTP status code other than HTTP 200 OK, the function d ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLogging.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLogging.ps1 index 5dcd1e37d..bf9c5f88e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLogging.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionLogging.ps1 @@ -40,7 +40,7 @@ A complex type that controls whether access logs are written for the distributio ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionOrigin.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionOrigin.ps1 index 589ca0806..07ca2389a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionOrigin.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionOrigin.ps1 @@ -16,6 +16,13 @@ If you use CloudFormation to create a CloudFront distribution and an S3 bucket o .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html + .PARAMETER ConnectionTimeout + + Origin: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Origin.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectiontimeout + PrimitiveType: Integer + UpdateType: Mutable + .PARAMETER OriginCustomHeaders A complex type that contains names and values for the custom headers that you want. @@ -24,6 +31,13 @@ If you use CloudFormation to create a CloudFront distribution and an S3 bucket o ItemType: OriginCustomHeader UpdateType: Mutable + .PARAMETER ConnectionAttempts + + Origin: https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Origin.html in the *Amazon CloudFront API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectionattempts + PrimitiveType: Integer + UpdateType: Mutable + .PARAMETER DomainName **Amazon S3 origins**: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, my-aws-bucket.s3.amazonaws.com. For S3 buckets configured as a static website, use CustomOriginConfig instead. For more information about specifying this value for different types of origins, see Origin Domain Name: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName in the *Amazon CloudFront Developer Guide*. @@ -84,6 +98,17 @@ When you specify the value of TargetOriginId for the default cache behavior or f [cmdletbinding()] Param ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ConnectionTimeout, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.CloudFront.Distribution.OriginCustomHeader" @@ -95,6 +120,17 @@ When you specify the value of TargetOriginId for the default cache behavior or f } })] $OriginCustomHeaders, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ConnectionAttempts, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionViewerCertificate.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionViewerCertificate.ps1 index b65a94e2f..e3c5f23b0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionViewerCertificate.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontDistributionViewerCertificate.ps1 @@ -125,7 +125,7 @@ If you specify an ACM certificate ARN, you must also specify values for MinimumP $MinimumProtocolVersion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionLogging.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionLogging.ps1 index bdab77958..904d3a96e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionLogging.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionLogging.ps1 @@ -51,7 +51,7 @@ A complex type that controls whether access logs are written for the streaming d $Bucket, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionStreamingDistributionConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionStreamingDistributionConfig.ps1 index cadc8e1de..8372d7203 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionStreamingDistributionConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionStreamingDistributionConfig.ps1 @@ -95,7 +95,7 @@ The RTMP distribution's configuration information. $S3Origin, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionTrustedSigners.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionTrustedSigners.ps1 index e47e26145..6bcc2b0c3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionTrustedSigners.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudFrontStreamingDistributionTrustedSigners.ps1 @@ -40,7 +40,7 @@ If you don't want to require signed URLs in requests for objects, specify false ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudTrailTrailEventSelector.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudTrailTrailEventSelector.ps1 index 2042957c8..047c15dce 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudTrailTrailEventSelector.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudTrailTrailEventSelector.ps1 @@ -59,7 +59,7 @@ By default, the value is All. $DataResources, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCloudWatchAlarmMetricDataQuery.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCloudWatchAlarmMetricDataQuery.ps1 index c2682c66e..074f5ea03 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCloudWatchAlarmMetricDataQuery.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCloudWatchAlarmMetricDataQuery.ps1 @@ -42,6 +42,13 @@ Within one MetricDataQuery object, you must specify either Expression or MetricS Type: MetricStat UpdateType: Mutable + .PARAMETER Period + *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-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-period + PrimitiveType: Integer + UpdateType: Mutable + .PARAMETER ReturnData This option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify False. If you omit this, the default of True is used. @@ -93,7 +100,18 @@ Within one MetricDataQuery object, you must specify either Expression or MetricS $MetricStat, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Period, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectArtifacts.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectArtifacts.ps1 index b57b5a4eb..97d418af1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectArtifacts.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectArtifacts.ps1 @@ -147,7 +147,7 @@ For example, if path is set to MyArtifacts, namespaceType is set to BUILD_ID, an $ArtifactIdentifier, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -169,7 +169,7 @@ For example, if path is set to MyArtifacts, namespaceType is set to BUILD_ID, an $Packaging, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectBuildStatusConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectBuildStatusConfig.ps1 new file mode 100644 index 000000000..f3f4e2cdd --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectBuildStatusConfig.ps1 @@ -0,0 +1,70 @@ +function Add-VSCodeBuildProjectBuildStatusConfig { + <# + .SYNOPSIS + Adds an AWS::CodeBuild::Project.BuildStatusConfig resource property to the template. + + .DESCRIPTION + Adds an AWS::CodeBuild::Project.BuildStatusConfig resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html + + .PARAMETER Context + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html#cfn-codebuild-project-buildstatusconfig-context + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER TargetUrl + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html#cfn-codebuild-project-buildstatusconfig-targeturl + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.CodeBuild.Project.BuildStatusConfig')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Context, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TargetUrl + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.CodeBuild.Project.BuildStatusConfig' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectEnvironment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectEnvironment.ps1 index a08db337d..edb9f6b52 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectEnvironment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectEnvironment.ps1 @@ -123,7 +123,7 @@ For more information, see Build Environment Compute Types: https://docs.aws.amaz $EnvironmentVariables, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectGitSubmodulesConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectGitSubmodulesConfig.ps1 index 25f06fccf..1db9e15d9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectGitSubmodulesConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectGitSubmodulesConfig.ps1 @@ -26,7 +26,7 @@ GitSubmodulesConfig is a property of the AWS CodeBuild Project Source: https://d ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectProjectTriggers.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectProjectTriggers.ps1 index 6b433f9fa..1929d5fe1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectProjectTriggers.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectProjectTriggers.ps1 @@ -45,7 +45,7 @@ ProjectTriggers is a property of the AWS CodeBuild Project: https://docs.aws.ama $FilterGroups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectS3LogsConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectS3LogsConfig.ps1 index 53d413ac0..e062162ab 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectS3LogsConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectS3LogsConfig.ps1 @@ -53,7 +53,7 @@ S3Logs is a property of the AWS CodeBuild Project LogsConfig : https://docs.aws. $Status, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectSource.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectSource.ps1 index bd33e5cde..2e5a81ce9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectSource.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectSource.ps1 @@ -60,6 +60,13 @@ This information is for the AWS CodeBuild console's use only. Your code should n PrimitiveType: Integer UpdateType: Mutable + .PARAMETER BuildStatusConfig + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: BuildStatusConfig + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-buildstatusconfig + UpdateType: Mutable + .PARAMETER GitSubmodulesConfig Information about the Git submodules configuration for the build project. @@ -109,7 +116,7 @@ If you specify CODEPIPELINE for the Type property, don't specify this property. $Type, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -154,10 +161,12 @@ If you specify CODEPIPELINE for the Type property, don't specify this property. })] $GitCloneDepth, [parameter(Mandatory = $false)] + $BuildStatusConfig, + [parameter(Mandatory = $false)] $GitSubmodulesConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectWebhookFilter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectWebhookFilter.ps1 index 3a89ffc25..497176228 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectWebhookFilter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildProjectWebhookFilter.ps1 @@ -77,7 +77,7 @@ Works with GitHub and GitHub Enterprise push events only. $Type, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildReportGroupS3ReportExportConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildReportGroupS3ReportExportConfig.ps1 index cc2ec6a10..2b1d4ca90 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeBuildReportGroupS3ReportExportConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeBuildReportGroupS3ReportExportConfig.ps1 @@ -100,7 +100,7 @@ Information about the S3 bucket where the raw data of a report are exported. $EncryptionKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAlarmConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAlarmConfiguration.ps1 index 98549a699..4f490e5ec 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAlarmConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAlarmConfiguration.ps1 @@ -55,7 +55,7 @@ The AlarmConfiguration property type configuresCloudWatch alarms for an AWS Code $Alarms, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -66,7 +66,7 @@ The AlarmConfiguration property type configuresCloudWatch alarms for an AWS Code $Enabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration.ps1 index 235993be3..8ae842764 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration.ps1 @@ -37,7 +37,7 @@ AutoRollbackConfiguration is a property of the DeploymentGroup: https://docs.aws ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupDeployment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupDeployment.ps1 index 4c7986043..d186ca352 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupDeployment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodeDeployDeploymentGroupDeployment.ps1 @@ -54,7 +54,7 @@ If the cause of the failure is a script from the last successful deployment that $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCodePipelineCustomActionTypeConfigurationProperties.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCodePipelineCustomActionTypeConfigurationProperties.ps1 index e0bd74308..183c86890 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCodePipelineCustomActionTypeConfigurationProperties.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCodePipelineCustomActionTypeConfigurationProperties.ps1 @@ -85,7 +85,7 @@ When updating a pipeline, passing * * * * * without changing any other values of $Description, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -107,7 +107,7 @@ When updating a pipeline, passing * * * * * without changing any other values of $Name, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -118,7 +118,7 @@ When updating a pipeline, passing * * * * * without changing any other values of $Queryable, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -129,7 +129,7 @@ When updating a pipeline, passing * * * * * without changing any other values of $Required, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoIdentityPoolCognitoIdentityProvider.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoIdentityPoolCognitoIdentityProvider.ps1 index 37d97f740..e06139259 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoIdentityPoolCognitoIdentityProvider.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoIdentityPoolCognitoIdentityProvider.ps1 @@ -42,7 +42,7 @@ If the user is signed out or deleted, the identity pool returns a 400 Not Author ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolAdminCreateUserConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolAdminCreateUserConfig.ps1 index d15bbaa0c..3c265c9ed 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolAdminCreateUserConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolAdminCreateUserConfig.ps1 @@ -55,7 +55,7 @@ If you set a value for TemporaryPasswordValidityDays in PasswordPolicy, that val $UnusedAccountValidityDays, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolClientAnalyticsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolClientAnalyticsConfiguration.ps1 index a5a3e837b..88bc0bd17 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolClientAnalyticsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolClientAnalyticsConfiguration.ps1 @@ -51,7 +51,7 @@ Cognito User Pools only supports sending events to Amazon Pinpoint projects in t ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolDeviceConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolDeviceConfiguration.ps1 index 21a56105c..b95bccd27 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolDeviceConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolDeviceConfiguration.ps1 @@ -33,7 +33,7 @@ The configuration for the user pool's device tracking. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -44,7 +44,7 @@ The configuration for the user pool's device tracking. $DeviceOnlyRememberedOnUserPrompt, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolPasswordPolicy.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolPasswordPolicy.ps1 index a9fca3969..b93257ac7 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolPasswordPolicy.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolPasswordPolicy.ps1 @@ -64,7 +64,7 @@ When you set TemporaryPasswordValidityDays for a user pool, you will no longer b ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -97,7 +97,7 @@ When you set TemporaryPasswordValidityDays for a user pool, you will no longer b $TemporaryPasswordValidityDays, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -108,7 +108,7 @@ When you set TemporaryPasswordValidityDays for a user pool, you will no longer b $RequireUppercase, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -119,7 +119,7 @@ When you set TemporaryPasswordValidityDays for a user pool, you will no longer b $RequireLowercase, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolRiskConfigurationAttachmentAccountTakeoverActionType.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolRiskConfigurationAttachmentAccountTakeoverActionType.ps1 index 8b21ecb5a..5f25e4b14 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolRiskConfigurationAttachmentAccountTakeoverActionType.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolRiskConfigurationAttachmentAccountTakeoverActionType.ps1 @@ -37,7 +37,7 @@ Account takeover action type. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolSchemaAttribute.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolSchemaAttribute.ps1 index 9b1983974..ac0fd19bd 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolSchemaAttribute.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolSchemaAttribute.ps1 @@ -70,7 +70,7 @@ For any user pool attribute that's mapped to an identity provider attribute, you ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -81,7 +81,7 @@ For any user pool attribute that's mapped to an identity provider attribute, you $DeveloperOnlyAttribute, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -105,7 +105,7 @@ For any user pool attribute that's mapped to an identity provider attribute, you $StringAttributeConstraints, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolUsernameConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolUsernameConfiguration.ps1 index 36ad1a4fd..f7f971d03 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolUsernameConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSCognitoUserPoolUsernameConfiguration.ps1 @@ -29,7 +29,7 @@ Valid values include: ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorAccountAggregationSource.ps1 b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorAccountAggregationSource.ps1 index 371a9d434..df2be46bb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorAccountAggregationSource.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorAccountAggregationSource.ps1 @@ -42,7 +42,7 @@ A collection of accounts and regions. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorOrganizationAggregationSource.ps1 b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorOrganizationAggregationSource.ps1 index d4717f8c4..f047e82c1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorOrganizationAggregationSource.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationAggregatorOrganizationAggregationSource.ps1 @@ -41,7 +41,7 @@ This object contains regions to set up the aggregator and an IAM role to retriev ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationRecorderRecordingGroup.ps1 b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationRecorderRecordingGroup.ps1 index 91e95015c..2122b0aac 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationRecorderRecordingGroup.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSConfigConfigurationRecorderRecordingGroup.ps1 @@ -66,7 +66,7 @@ For a list of valid resourceTypes values, see the **resourceType Value** column ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -77,7 +77,7 @@ For a list of valid resourceTypes values, see the **resourceType Value** column $AllSupported, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDAXClusterSSESpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDAXClusterSSESpecification.ps1 index 6b045f386..22bc9be29 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDAXClusterSSESpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDAXClusterSSESpecification.ps1 @@ -26,7 +26,7 @@ Represents the settings used to enable server-side encryption. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyCrossRegionCopyRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyCrossRegionCopyRule.ps1 index 61ef1a839..9d60af5bb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyCrossRegionCopyRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyCrossRegionCopyRule.ps1 @@ -65,7 +65,7 @@ Specifies a rule for cross-Region snapshot copies. $TargetRegion, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -89,7 +89,7 @@ Specifies a rule for cross-Region snapshot copies. $RetainRule, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyParameters.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyParameters.ps1 index 5149089c3..d658132a5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyParameters.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicyParameters.ps1 @@ -26,7 +26,7 @@ Specifies optional parameters to add to a policy. The set of valid parameters de ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicySchedule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicySchedule.ps1 index 2e395f54f..62b52e609 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicySchedule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDLMLifecyclePolicySchedule.ps1 @@ -112,7 +112,7 @@ Specifies a backup schedule. $Name, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDMSEndpointNeptuneSettings.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDMSEndpointNeptuneSettings.ps1 index 5f448e3de..8927a5c9f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDMSEndpointNeptuneSettings.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDMSEndpointNeptuneSettings.ps1 @@ -98,7 +98,7 @@ function Add-VSDMSEndpointNeptuneSettings { $ErrorRetryDuration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTablePointInTimeRecoverySpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTablePointInTimeRecoverySpecification.ps1 index b3d4c6953..07e90fa41 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTablePointInTimeRecoverySpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTablePointInTimeRecoverySpecification.ps1 @@ -26,7 +26,7 @@ The settings used to enable point in time recovery. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableSSESpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableSSESpecification.ps1 index 530fd51ea..6fcc458bf 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableSSESpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableSSESpecification.ps1 @@ -52,7 +52,7 @@ Represents the settings used to enable server-side encryption. $KMSMasterKeyId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableTimeToLiveSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableTimeToLiveSpecification.ps1 index f16b58b10..5d39dce4b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableTimeToLiveSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSDynamoDBTableTimeToLiveSpecification.ps1 @@ -44,7 +44,7 @@ Represents the settings used to enable or disable Time to Live (TTL for the spec $AttributeName, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointClientAuthenticationRequest.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointClientAuthenticationRequest.ps1 index 36f206e0c..2e32479e4 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointClientAuthenticationRequest.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointClientAuthenticationRequest.ps1 @@ -24,6 +24,13 @@ Describes the authentication method to be used by a Client VPN endpoint. Client PrimitiveType: String UpdateType: Mutable + .PARAMETER FederatedAuthentication + *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt + + Type: FederatedAuthenticationRequest + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-federatedauthentication + UpdateType: Mutable + .PARAMETER ActiveDirectory Information about the Active Directory to be used, if applicable. You must provide this information if **Type** is directory-service-authentication. @@ -52,6 +59,8 @@ Describes the authentication method to be used by a Client VPN endpoint. Client })] $Type, [parameter(Mandatory = $false)] + $FederatedAuthentication, + [parameter(Mandatory = $false)] $ActiveDirectory ) Begin { diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointConnectionLogOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointConnectionLogOptions.ps1 index efb589287..154279061 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointConnectionLogOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2ClientVpnEndpointConnectionLogOptions.ps1 @@ -51,7 +51,7 @@ Describes the client connection logging options for the Client VPN endpoint. $CloudwatchLogStream, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetFleetLaunchTemplateOverridesRequest.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetFleetLaunchTemplateOverridesRequest.ps1 index 4d500e160..27074cc76 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetFleetLaunchTemplateOverridesRequest.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetFleetLaunchTemplateOverridesRequest.ps1 @@ -70,7 +70,7 @@ FleetLaunchTemplateOverridesRequest is a property of the FleetLaunchTemplateCon ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -83,7 +83,7 @@ FleetLaunchTemplateOverridesRequest is a property of the FleetLaunchTemplateCon $Placement, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetOnDemandOptionsRequest.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetOnDemandOptionsRequest.ps1 index 23567b0eb..920035ad3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetOnDemandOptionsRequest.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetOnDemandOptionsRequest.ps1 @@ -63,7 +63,7 @@ OnDemandOptionsRequest is a property of the AWS::EC2::EC2Fleet: https://docs.aws ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -85,7 +85,7 @@ OnDemandOptionsRequest is a property of the AWS::EC2::EC2Fleet: https://docs.aws $AllocationStrategy, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetSpotOptionsRequest.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetSpotOptionsRequest.ps1 index 0f497be6e..b891c1cf8 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetSpotOptionsRequest.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2EC2FleetSpotOptionsRequest.ps1 @@ -74,7 +74,7 @@ If the allocation strategy is capacityOptimized, EC2 Fleet launches instances fr ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -96,7 +96,7 @@ If the allocation strategy is capacityOptimized, EC2 Fleet launches instances fr $AllocationStrategy, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceEbs.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceEbs.ps1 index eb98beb38..7eb13ae90 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceEbs.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceEbs.ps1 @@ -77,7 +77,7 @@ Default: gp2 ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -88,7 +88,7 @@ Default: gp2 $DeleteOnTermination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceHibernationOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceHibernationOptions.ps1 index dc615e0c0..6be7297b5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceHibernationOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceHibernationOptions.ps1 @@ -29,7 +29,7 @@ Default: false ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceNetworkInterface.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceNetworkInterface.ps1 index 9c000f5d8..707f65ed3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceNetworkInterface.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2InstanceNetworkInterface.ps1 @@ -113,7 +113,7 @@ If you are creating a Spot Fleet, omit this parameter because you can’t specif ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -124,7 +124,7 @@ If you are creating a Spot Fleet, omit this parameter because you can’t specif $AssociatePublicIpAddress, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2InstancePrivateIpAddressSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2InstancePrivateIpAddressSpecification.ps1 index 3e3af40d6..807dd918d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2InstancePrivateIpAddressSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2InstancePrivateIpAddressSpecification.ps1 @@ -33,7 +33,7 @@ Describes a secondary private IPv4 address for a network interface. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateEbs.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateEbs.ps1 index d76cdde0a..d123cbc57 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateEbs.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateEbs.ps1 @@ -105,7 +105,7 @@ Default: If you're creating the volume from a snapshot and don't specify a volum $KmsKeyId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -138,7 +138,7 @@ Default: If you're creating the volume from a snapshot and don't specify a volum $VolumeSize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateHibernationOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateHibernationOptions.ps1 index b46541aab..6143d6ee0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateHibernationOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateHibernationOptions.ps1 @@ -29,7 +29,7 @@ Default: false ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateLaunchTemplateData.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateLaunchTemplateData.ps1 index c56c0e0d5..ae27f8df8 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateLaunchTemplateData.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateLaunchTemplateData.ps1 @@ -261,7 +261,7 @@ We recommend that you use PV-GRUB instead of kernels and RAM disks. For more inf $KernelId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -372,7 +372,7 @@ We recommend that you use PV-GRUB instead of kernels and RAM disks. For more inf $KeyName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateMonitoring.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateMonitoring.ps1 index 2b2a6afb8..78fe6e9b3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateMonitoring.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateMonitoring.ps1 @@ -28,7 +28,7 @@ Monitoring is a property of the Amazon EC2 LaunchTemplate LaunchTemplateData: ht ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateNetworkInterface.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateNetworkInterface.ps1 index 51923103a..f2507a3b3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateNetworkInterface.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplateNetworkInterface.ps1 @@ -194,7 +194,7 @@ Valid values: interface | efa $Ipv6Addresses, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -240,7 +240,7 @@ Valid values: interface | efa $Groups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplatePrivateIpAdd.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplatePrivateIpAdd.ps1 index a57715dff..434bcd79f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplatePrivateIpAdd.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2LaunchTemplatePrivateIpAdd.ps1 @@ -46,7 +46,7 @@ PrivateIpAdd is a property of the Amazon EC2 LaunchTemplate NetworkInterface: ht $PrivateIpAddress, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2NetworkInterfacePrivateIpAddressSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2NetworkInterfacePrivateIpAddressSpecification.ps1 index 664e0d9ff..424ceb353 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2NetworkInterfacePrivateIpAddressSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2NetworkInterfacePrivateIpAddressSpecification.ps1 @@ -33,7 +33,7 @@ Describes a secondary private IPv4 address for a network interface. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2PrefixListEntry.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2PrefixListEntry.ps1 new file mode 100644 index 000000000..90402aa21 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2PrefixListEntry.ps1 @@ -0,0 +1,70 @@ +function Add-VSEC2PrefixListEntry { + <# + .SYNOPSIS + Adds an AWS::EC2::PrefixList.Entry resource property to the template. + + .DESCRIPTION + Adds an AWS::EC2::PrefixList.Entry resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html + + .PARAMETER Cidr + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-cidr + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-description + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EC2.PrefixList.Entry')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Cidr, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EC2.PrefixList.Entry' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetEbsBlockDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetEbsBlockDevice.ps1 index 48872bdb6..b5e72bffb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetEbsBlockDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetEbsBlockDevice.ps1 @@ -69,7 +69,7 @@ Default: gp2 ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -80,7 +80,7 @@ Default: gp2 $DeleteOnTermination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetInstanceNetworkInterfaceSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetInstanceNetworkInterfaceSpecification.ps1 index 135b7def8..ff2e16105 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetInstanceNetworkInterfaceSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetInstanceNetworkInterfaceSpecification.ps1 @@ -104,7 +104,7 @@ If you are creating a Spot Fleet, omit this parameter because you can’t specif ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -115,7 +115,7 @@ If you are creating a Spot Fleet, omit this parameter because you can’t specif $AssociatePublicIpAddress, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetLaunchTemplateOverrides.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetLaunchTemplateOverrides.ps1 index fd1eba512..e75a4fcae 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetLaunchTemplateOverrides.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetLaunchTemplateOverrides.ps1 @@ -98,7 +98,7 @@ Specifies overrides for a launch template. $SubnetId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetPrivateIpAddressSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetPrivateIpAddressSpecification.ps1 index bcb5bafbd..796e0ebe6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetPrivateIpAddressSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetPrivateIpAddressSpecification.ps1 @@ -33,7 +33,7 @@ Describes a secondary private IPv4 address for a network interface. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetLaunchSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetLaunchSpecification.ps1 index 55799b132..a932ee1b6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetLaunchSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetLaunchSpecification.ps1 @@ -159,7 +159,7 @@ If the target capacity divided by this value is not a whole number, Amazon EC2 r $BlockDeviceMappings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -297,7 +297,7 @@ If the target capacity divided by this value is not a whole number, Amazon EC2 r $UserData, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetMonitoring.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetMonitoring.ps1 index 81be08373..a6c99b601 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetMonitoring.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetMonitoring.ps1 @@ -27,7 +27,7 @@ Default: false ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetRequestConfigData.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetRequestConfigData.ps1 index 0d7a898d1..d68885025 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetRequestConfigData.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEC2SpotFleetSpotFleetRequestConfigData.ps1 @@ -193,7 +193,7 @@ With Network Load Balancers, Spot Fleet cannot register instances that have the $LoadBalancersConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -226,7 +226,7 @@ With Network Load Balancers, Spot Fleet cannot register instances that have the $TargetCapacity, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderAutoScalingGroupProvider.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderAutoScalingGroupProvider.ps1 new file mode 100644 index 000000000..4b2a16b7c --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderAutoScalingGroupProvider.ps1 @@ -0,0 +1,77 @@ +function Add-VSECSCapacityProviderAutoScalingGroupProvider { + <# + .SYNOPSIS + Adds an AWS::ECS::CapacityProvider.AutoScalingGroupProvider resource property to the template. + + .DESCRIPTION + Adds an AWS::ECS::CapacityProvider.AutoScalingGroupProvider resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html + + .PARAMETER AutoScalingGroupArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-autoscalinggrouparn + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER ManagedScaling + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedscaling + UpdateType: Immutable + Type: ManagedScaling + + .PARAMETER ManagedTerminationProtection + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedterminationprotection + UpdateType: Immutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ECS.CapacityProvider.AutoScalingGroupProvider')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AutoScalingGroupArn, + [parameter(Mandatory = $false)] + $ManagedScaling, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ManagedTerminationProtection + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ECS.CapacityProvider.AutoScalingGroupProvider' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderManagedScaling.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderManagedScaling.ps1 new file mode 100644 index 000000000..6ed2c9760 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSECSCapacityProviderManagedScaling.ps1 @@ -0,0 +1,102 @@ +function Add-VSECSCapacityProviderManagedScaling { + <# + .SYNOPSIS + Adds an AWS::ECS::CapacityProvider.ManagedScaling resource property to the template. + + .DESCRIPTION + Adds an AWS::ECS::CapacityProvider.ManagedScaling resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html + + .PARAMETER MinimumScalingStepSize + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize + UpdateType: Immutable + PrimitiveType: Integer + + .PARAMETER MaximumScalingStepSize + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize + UpdateType: Immutable + PrimitiveType: Integer + + .PARAMETER Status + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-status + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER TargetCapacity + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-targetcapacity + UpdateType: Immutable + PrimitiveType: Integer + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ECS.CapacityProvider.ManagedScaling')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MinimumScalingStepSize, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MaximumScalingStepSize, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Status, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TargetCapacity + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ECS.CapacityProvider.ManagedScaling' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSClusterCapacityProviderStrategyItem.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSClusterCapacityProviderStrategyItem.ps1 new file mode 100644 index 000000000..40d31b1c8 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSECSClusterCapacityProviderStrategyItem.ps1 @@ -0,0 +1,86 @@ +function Add-VSECSClusterCapacityProviderStrategyItem { + <# + .SYNOPSIS + Adds an AWS::ECS::Cluster.CapacityProviderStrategyItem resource property to the template. + + .DESCRIPTION + Adds an AWS::ECS::Cluster.CapacityProviderStrategyItem resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html + + .PARAMETER CapacityProvider + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-capacityprovider + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Weight + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-weight + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER Base + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-base + UpdateType: Mutable + PrimitiveType: Integer + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ECS.Cluster.CapacityProviderStrategyItem')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CapacityProvider, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Weight, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Base + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ECS.Cluster.CapacityProviderStrategyItem' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDefinition.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDefinition.ps1 index e9948ee72..f8320ee62 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDefinition.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDefinition.ps1 @@ -14,10 +14,9 @@ The ContainerDefinition property specifies a container definition. Container def The command that is passed to the container. This parameter maps to Cmd in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the COMMAND parameter to docker run: https://docs.docker.com/engine/reference/run/. For more information, see https://docs.docker.com/engine/reference/builder/#cmd: https://docs.docker.com/engine/reference/builder/#cmd. If there are multiple arguments, each argument should be a separated string in the array. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-command - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER Cpu The number of cpu units reserved for the container. This parameter maps to CpuShares in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --cpu-shares option to docker run: https://docs.docker.com/engine/reference/run/. @@ -26,8 +25,8 @@ You can determine the number of CPU units that are available per EC2 instance ty Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-cpu - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER DependsOn The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. @@ -35,47 +34,43 @@ For tasks using the EC2 launch type, the container instances require at least ve For tasks using the Fargate launch type, the task or service requires platform version 1.3.0 or later. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dependson - DuplicatesAllowed: False - ItemType: ContainerDependency - Type: List UpdateType: Immutable + Type: List + ItemType: ContainerDependency .PARAMETER DisableNetworking When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/. This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-disablenetworking - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER DnsSearchDomains A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --dns-search option to docker run: https://docs.docker.com/engine/reference/run/. This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnssearchdomains - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER DnsServers A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --dns option to docker run: https://docs.docker.com/engine/reference/run/. This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnsservers - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER DockerLabels A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --label option to docker run: https://docs.docker.com/engine/reference/run/. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}' Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockerlabels - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map UpdateType: Immutable + Type: Map + PrimitiveItemType: String .PARAMETER DockerSecurityOptions A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field is not valid for containers in tasks using the Fargate launch type. @@ -84,70 +79,67 @@ This parameter maps to SecurityOpt in the Create a container: https://docs.docke The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockersecurityoptions - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER EntryPoint Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead. The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --entrypoint option to docker run: https://docs.docker.com/engine/reference/run/. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint: https://docs.docker.com/engine/reference/builder/#entrypoint. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-entrypoint - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER Environment The environment variables to pass to a container. This parameter maps to Env in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --env option to docker run: https://docs.docker.com/engine/reference/run/. We do not recommend using plaintext environment variables for sensitive information, such as credential data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environment - DuplicatesAllowed: False - ItemType: KeyValuePair - Type: List UpdateType: Immutable + Type: List + ItemType: KeyValuePair + DuplicatesAllowed: False .PARAMETER Essential If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-essential - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER ExtraHosts A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --add-host option to docker run: https://docs.docker.com/engine/reference/run/. This parameter is not supported for Windows containers or tasks that use the awsvpc network mode. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-extrahosts - DuplicatesAllowed: False - ItemType: HostEntry - Type: List UpdateType: Immutable + Type: List + ItemType: HostEntry .PARAMETER FirelensConfiguration The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom Log Routing: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-firelensconfiguration - Type: FirelensConfiguration UpdateType: Immutable + Type: FirelensConfiguration .PARAMETER HealthCheck The container health check command and associated configuration parameters for the container. This parameter maps to HealthCheck in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the HEALTHCHECK parameter of docker run: https://docs.docker.com/engine/reference/run/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-healthcheck - Type: HealthCheck UpdateType: Immutable + Type: HealthCheck .PARAMETER Hostname The hostname to use for your container. This parameter maps to Hostname in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --hostname option to docker run: https://docs.docker.com/engine/reference/run/. The hostname parameter is not supported if you are using the awsvpc network mode. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-hostname - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Image The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest . Up to 255 letters uppercase and lowercase, numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the IMAGE parameter of docker run: https://docs.docker.com/engine/reference/run/. @@ -158,15 +150,8 @@ The hostname parameter is not supported if you are using the awsvpc network mode + Images in other online repositories are qualified further by a domain name for example, quay.io/assemblyline/ubuntu. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-image - PrimitiveType: String - UpdateType: Immutable - - .PARAMETER Interactive - When this parameter is true, this allows you to deploy containerized applications that require stdin or a tty to be allocated. This parameter maps to OpenStdin in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --interactive option to docker run: https://docs.docker.com/engine/reference/run/. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-interactive - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: String .PARAMETER Links The links parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is bridge. The name:internalName construct is analogous to name:alias in Docker links. Up to 255 letters uppercase and lowercase, numbers, and hyphens are allowed. For more information about linking Docker containers, go to Legacy container links: https://docs.docker.com/network/links/ in the Docker documentation. This parameter maps to Links in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --link option to docker run: https://docs.docker.com/engine/reference/run/. @@ -174,18 +159,18 @@ This parameter is not supported for Windows containers. Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-links - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .PARAMETER LinuxParameters Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see KernelCapabilities: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html. This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-linuxparameters - Type: LinuxParameters UpdateType: Immutable + Type: LinuxParameters .PARAMETER LogConfiguration The log configuration specification for the container. @@ -196,8 +181,8 @@ This parameter requires version 1.18 of the Docker Remote API or greater on your The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration - Type: LogConfiguration UpdateType: Immutable + Type: LogConfiguration .PARAMETER Memory The amount in MiB of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task memory value, if one is specified. This parameter maps to Memory in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --memory option to docker run: https://docs.docker.com/engine/reference/run/. @@ -206,8 +191,8 @@ If using the EC2 launch type, you must specify either a task-level memory value The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memory - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER MemoryReservation The soft limit in MiB of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter if applicable, or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --memory-reservation option to docker run: https://docs.docker.com/engine/reference/run/. @@ -216,8 +201,8 @@ For example, if your container normally uses 128 MiB of memory, but occasionally The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memoryreservation - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER MountPoints The mount points for data volumes in your container. @@ -225,17 +210,17 @@ This parameter maps to Volumes in the Create a container: https://docs.docker.co Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers cannot mount directories on a different drive, and mount point cannot be across drives. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints - DuplicatesAllowed: False - ItemType: MountPoint - Type: List UpdateType: Immutable + Type: List + ItemType: MountPoint + DuplicatesAllowed: False .PARAMETER Name The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters uppercase and lowercase, numbers, and hyphens are allowed. This parameter maps to name in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --name option to docker run: https://docs.docker.com/engine/reference/run/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-name - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER PortMappings The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. @@ -245,58 +230,49 @@ This parameter maps to PortBindings in the Create a container: https://docs.dock After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the **Network Bindings** section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the networkBindings section DescribeTasks: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html responses. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-portmappings - DuplicatesAllowed: False - ItemType: PortMapping - Type: List UpdateType: Immutable + Type: List + ItemType: PortMapping + DuplicatesAllowed: False .PARAMETER Privileged When this parameter is true, the container is given elevated privileges on the host container instance similar to the root user. This parameter maps to Privileged in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --privileged option to docker run: https://docs.docker.com/engine/reference/run/. This parameter is not supported for Windows containers or tasks using the Fargate launch type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-privileged - PrimitiveType: Boolean UpdateType: Immutable - - .PARAMETER PseudoTerminal - When this parameter is true, a TTY is allocated. This parameter maps to Tty in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --tty option to docker run: https://docs.docker.com/engine/reference/run/. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-pseudoterminal PrimitiveType: Boolean - UpdateType: Immutable .PARAMETER ReadonlyRootFilesystem When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --read-only option to docker run: https://docs.docker.com/engine/reference/run/. This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-readonlyrootfilesystem - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER RepositoryCredentials The private repository authentication credentials to use. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-repositorycredentials - Type: RepositoryCredentials UpdateType: Immutable + Type: RepositoryCredentials .PARAMETER ResourceRequirements The type and amount of a resource to assign to a container. The only supported resource is a GPU. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-resourcerequirements - DuplicatesAllowed: False - ItemType: ResourceRequirement - Type: List UpdateType: Immutable + Type: List + ItemType: ResourceRequirement .PARAMETER Secrets The secrets to pass to the container. For more information, see Specifying Sensitive Data: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-secrets - DuplicatesAllowed: False - ItemType: Secret - Type: List UpdateType: Immutable + Type: List + ItemType: Secret .PARAMETER StartTimeout Time duration in seconds to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS, or HEALTHY status. If a startTimeout value is specified for containerB and it does not reach the desired status within that time then containerA will give up and not start. This results in the task transitioning to a STOPPED state. @@ -304,8 +280,8 @@ For tasks using the Fargate launch type, this parameter requires that the task o For tasks using the EC2 launch type, if the startTimeout parameter is not specified, the value set for the Amazon ECS container agent configuration variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither the startTimeout parameter or the ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, then the default values of 3 minutes for Linux containers and 8 minutes on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to enable a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-starttimeout - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER StopTimeout Time duration in seconds to wait before the container is forcefully killed if it doesn't exit normally on its own. @@ -313,28 +289,17 @@ For tasks using the Fargate launch type, the task or service requires platform v For tasks using the EC2 launch type, if the stopTimeout parameter is not specified, the value set for the Amazon ECS container agent configuration variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to enable a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-stoptimeout - PrimitiveType: Integer - UpdateType: Immutable - - .PARAMETER SystemControls - A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --sysctl option to docker run: https://docs.docker.com/engine/reference/run/. -It is not recommended that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network modes. For tasks that use the awsvpc network mode, the container that is started last determines which systemControls parameters take effect. For tasks that use the host network mode, it changes the container instance's namespaced kernel parameters as well as the containers. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-systemcontrols - DuplicatesAllowed: False - ItemType: SystemControl - Type: List UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Ulimits A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --ulimit option to docker run: https://docs.docker.com/engine/reference/run/. Valid naming values are displayed in the Ulimit: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}' This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-ulimits - DuplicatesAllowed: False - ItemType: Ulimit - Type: List UpdateType: Immutable + Type: List + ItemType: Ulimit .PARAMETER User The user name to use inside the container. This parameter maps to User in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --user option to docker run: https://docs.docker.com/engine/reference/run/. @@ -348,24 +313,47 @@ You can use the following formats. If specifying a UID or GID, you must specify This parameter is not supported for Windows containers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-user - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER VolumesFrom Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --volumes-from option to docker run: https://docs.docker.com/engine/reference/run/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom - DuplicatesAllowed: False - ItemType: VolumeFrom - Type: List UpdateType: Immutable + Type: List + ItemType: VolumeFrom + DuplicatesAllowed: False .PARAMETER WorkingDirectory The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --workdir option to docker run: https://docs.docker.com/engine/reference/run/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-workingdirectory + UpdateType: Immutable PrimitiveType: String + + .PARAMETER Interactive + When this parameter is true, this allows you to deploy containerized applications that require stdin or a tty to be allocated. This parameter maps to OpenStdin in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --interactive option to docker run: https://docs.docker.com/engine/reference/run/. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-interactive UpdateType: Immutable + PrimitiveType: Boolean + + .PARAMETER PseudoTerminal + When this parameter is true, a TTY is allocated. This parameter maps to Tty in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --tty option to docker run: https://docs.docker.com/engine/reference/run/. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-pseudoterminal + UpdateType: Immutable + PrimitiveType: Boolean + + .PARAMETER SystemControls + A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --sysctl option to docker run: https://docs.docker.com/engine/reference/run/. +It is not recommended that you specify network-related systemControls parameters for multiple containers in a single task that also uses either the awsvpc or host network modes. For tasks that use the awsvpc network mode, the container that is started last determines which systemControls parameters take effect. For tasks that use the host network mode, it changes the container instance's namespaced kernel parameters as well as the containers. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-systemcontrols + UpdateType: Immutable + Type: List + ItemType: SystemControl .FUNCTIONALITY Vaporshell @@ -402,7 +390,7 @@ This parameter is not supported for Windows containers. $DependsOn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -435,7 +423,7 @@ This parameter is not supported for Windows containers. $Environment, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -482,17 +470,6 @@ This parameter is not supported for Windows containers. })] $Image, [parameter(Mandatory = $false)] - [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" - if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { - $true - } - else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) - } - })] - $Interactive, - [parameter(Mandatory = $false)] $Links, [parameter(Mandatory = $false)] $LinuxParameters, @@ -555,7 +532,7 @@ This parameter is not supported for Windows containers. $PortMappings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -566,18 +543,7 @@ This parameter is not supported for Windows containers. $Privileged, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" - if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { - $true - } - else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) - } - })] - $PseudoTerminal, - [parameter(Mandatory = $false)] - [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -634,7 +600,7 @@ This parameter is not supported for Windows containers. $StopTimeout, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.SystemControl" + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.Ulimit" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -642,10 +608,10 @@ This parameter is not supported for Windows containers. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $SystemControls, + $Ulimits, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.Ulimit" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -653,7 +619,18 @@ This parameter is not supported for Windows containers. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Ulimits, + $User, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.VolumeFrom" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $VolumesFrom, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -664,10 +641,10 @@ This parameter is not supported for Windows containers. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $User, + $WorkingDirectory, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.VolumeFrom" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -675,10 +652,21 @@ This parameter is not supported for Windows containers. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $VolumesFrom, + $Interactive, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PseudoTerminal, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.SystemControl" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -686,7 +674,7 @@ This parameter is not supported for Windows containers. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $WorkingDirectory + $SystemControls ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDependency.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDependency.ps1 index 62b0a2a90..e65ed0bf2 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDependency.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionContainerDependency.ps1 @@ -16,6 +16,13 @@ For tasks using the Fargate launch type, this parameter requires that the task o .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html + .PARAMETER ContainerName + The name of a container. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-containername + UpdateType: Immutable + PrimitiveType: String + .PARAMETER Condition The dependency condition of the container. The following are the available conditions and their behavior: + START - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. @@ -24,15 +31,8 @@ For tasks using the Fargate launch type, this parameter requires that the task o + HEALTHY - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-condition - PrimitiveType: String UpdateType: Immutable - - .PARAMETER ContainerName - The name of a container. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-containername PrimitiveType: String - UpdateType: Immutable .FUNCTIONALITY Vaporshell @@ -41,7 +41,7 @@ For tasks using the Fargate launch type, this parameter requires that the task o [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -51,8 +51,8 @@ For tasks using the Fargate launch type, this parameter requires that the task o $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Condition, - [parameter(Mandatory = $true)] + $ContainerName, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -62,7 +62,7 @@ For tasks using the Fargate launch type, this parameter requires that the task o $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ContainerName + $Condition ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDevice.ps1 index 1e29f3341..8d0a21c52 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDevice.ps1 @@ -14,24 +14,24 @@ The Device property specifies an object representing a container instance host d The path inside the container at which to expose the host device. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-containerpath - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER HostPath The path for the device on the host container instance. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-hostpath - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Permissions The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-permissions - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .FUNCTIONALITY Vaporshell @@ -51,7 +51,7 @@ The Device property specifies an object representing a container instance host d } })] $ContainerPath, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDockerVolumeConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDockerVolumeConfiguration.ps1 index b8dcd8a2a..6c968b4e9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDockerVolumeConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionDockerVolumeConfiguration.ps1 @@ -15,40 +15,38 @@ The DockerVolumeConfiguration property specifies a Docker volume configuration a This field is only used if the scope is shared. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-autoprovision - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER Driver The Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. If the driver was installed using the Docker plugin CLI, use docker plugin ls to retrieve the driver name from your container instance. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name. For more information, see Docker plugin discovery: https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery. This parameter maps to Driver in the Create a volume: https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the xxdriver option to docker volume create: https://docs.docker.com/engine/reference/commandline/volume_create/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driver - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER DriverOpts A map of Docker driver-specific options passed through. This parameter maps to DriverOpts in the Create a volume: https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the xxopt option to docker volume create: https://docs.docker.com/engine/reference/commandline/volume_create/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driveropts - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map UpdateType: Immutable + Type: Map + PrimitiveItemType: String .PARAMETER Labels Custom metadata to add to your Docker volume. This parameter maps to Labels in the Create a volume: https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the xxlabel option to docker volume create: https://docs.docker.com/engine/reference/commandline/volume_create/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-labels - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map UpdateType: Immutable + Type: Map + PrimitiveItemType: String .PARAMETER Scope The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a task are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as shared persist after the task stops. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-scope - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -59,7 +57,7 @@ This field is only used if the scope is shared. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionFirelensConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionFirelensConfiguration.ps1 index 878005dc0..5813948df 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionFirelensConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionFirelensConfiguration.ps1 @@ -10,6 +10,13 @@ The FireLens configuration for the container. This is used to specify and config .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html + .PARAMETER Type + The log router to use. The valid values are fluentd or fluentbit. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html#cfn-ecs-taskdefinition-firelensconfiguration-type + UpdateType: Immutable + PrimitiveType: String + .PARAMETER Options The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, valid option keys are: @@ -18,17 +25,8 @@ If specified, valid option keys are: + config-file-value, which is either an S3 ARN or a file path Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html#cfn-ecs-taskdefinition-firelensconfiguration-options - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map - UpdateType: Immutable - - .PARAMETER Type - The log router to use. The valid values are fluentd or fluentbit. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html#cfn-ecs-taskdefinition-firelensconfiguration-type - PrimitiveType: String UpdateType: Immutable + Type: Options .FUNCTIONALITY Vaporshell @@ -38,9 +36,6 @@ If specified, valid option keys are: Param ( [parameter(Mandatory = $false)] - [System.Collections.Hashtable] - $Options, - [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -50,7 +45,9 @@ If specified, valid option keys are: $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Type + $Type, + [parameter(Mandatory = $false)] + $Options ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHealthCheck.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHealthCheck.ps1 index 66c2492a0..528ac7f45 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHealthCheck.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHealthCheck.ps1 @@ -24,39 +24,38 @@ The following are notes about container health check support: An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-command - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER Interval The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-interval + UpdateType: Immutable PrimitiveType: Integer + + .PARAMETER Timeout + The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-timeout UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Retries The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-retries - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER StartPeriod The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-startperiod - PrimitiveType: Integer UpdateType: Immutable - - .PARAMETER Timeout - The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-timeout PrimitiveType: Integer - UpdateType: Immutable .FUNCTIONALITY Vaporshell @@ -65,7 +64,7 @@ If a health check succeeds within the startPeriod, then the container is conside [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $Command, [parameter(Mandatory = $false)] [ValidateScript( { @@ -88,7 +87,7 @@ If a health check succeeds within the startPeriod, then the container is conside $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Retries, + $Timeout, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" @@ -99,7 +98,7 @@ If a health check succeeds within the startPeriod, then the container is conside $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $StartPeriod, + $Retries, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" @@ -110,7 +109,7 @@ If a health check succeeds within the startPeriod, then the container is conside $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Timeout + $StartPeriod ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostEntry.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostEntry.ps1 index f1b11f1a2..adc69eca0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostEntry.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostEntry.ps1 @@ -14,15 +14,15 @@ The HostEntry property specifies a hostname and an IP address that are added to The hostname to use in the /etc/hosts entry. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-hostname - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER IpAddress The IP address to use in the /etc/hosts entry. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-ipaddress - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -31,7 +31,7 @@ The HostEntry property specifies a hostname and an IP address that are added to [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -42,7 +42,7 @@ The HostEntry property specifies a hostname and an IP address that are added to } })] $Hostname, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostVolumeProperties.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostVolumeProperties.ps1 index 2737b4978..ba7403011 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostVolumeProperties.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionHostVolumeProperties.ps1 @@ -15,8 +15,8 @@ The HostVolumeProperties property specifies details on a container instance bind If you are using the Fargate launch type, the sourcePath parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html#cfn-ecs-taskdefinition-volumes-host-sourcepath - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionInferenceAccelerator.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionInferenceAccelerator.ps1 index 581d5ec1d..2354cdd9c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionInferenceAccelerator.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionInferenceAccelerator.ps1 @@ -14,22 +14,15 @@ Details on an Elastic Inference accelerator. For more information, see Working w The Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicename - PrimitiveType: String UpdateType: Immutable - - .PARAMETER DevicePolicy - *Update requires*: Replacement: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicepolicy PrimitiveType: String - UpdateType: Immutable .PARAMETER DeviceType The Elastic Inference accelerator type to use. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicetype - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -50,17 +43,6 @@ Details on an Elastic Inference accelerator. For more information, see Working w })] $DeviceName, [parameter(Mandatory = $false)] - [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" - if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { - $true - } - else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) - } - })] - $DevicePolicy, - [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKernelCapabilities.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKernelCapabilities.ps1 index 45462052d..eca86250d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKernelCapabilities.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKernelCapabilities.ps1 @@ -16,20 +16,18 @@ The SYS_PTRACE capability is supported for tasks that use the Fargate launch typ Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM" Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-add - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER Drop The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to CapDrop in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --cap-drop option to docker run: https://docs.docker.com/engine/reference/run/. Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM" Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-drop - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKeyValuePair.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKeyValuePair.ps1 index 518b62a9a..ca7d4dd7f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKeyValuePair.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionKeyValuePair.ps1 @@ -14,15 +14,15 @@ The KeyValuePair property specifies a key-value pair object. The name of the key-value pair. For environment variables, this is the name of the environment variable. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-name - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Value The value of the key-value pair. For environment variables, this is the value of the environment variable. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-value - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLinuxParameters.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLinuxParameters.ps1 index 5bdfdf86b..8288efa4a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLinuxParameters.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLinuxParameters.ps1 @@ -15,25 +15,24 @@ The LinuxParameters property specifies Linux-specific options that are applied t For tasks that use the Fargate launch type, capabilities is supported for all platform versions but the add parameter is only supported if using platform version 1.4.0 or later. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-capabilities - Type: KernelCapabilities UpdateType: Immutable + Type: KernelCapabilities .PARAMETER Devices Any host devices to expose to the container. This parameter maps to Devices in the Create a container: https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate section of the Docker Remote API: https://docs.docker.com/engine/api/v1.35/ and the --device option to docker run: https://docs.docker.com/engine/reference/run/. If you are using tasks that use the Fargate launch type, the devices parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-devices - DuplicatesAllowed: False - ItemType: Device - Type: List UpdateType: Immutable + Type: List + ItemType: Device .PARAMETER InitProcessEnabled Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run: https://docs.docker.com/engine/reference/run/. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}' Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-initprocessenabled - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER MaxSwap The total amount of swap memory in MiB a container can use. This parameter will be translated to the --memory-swap option to docker run: https://docs.docker.com/engine/reference/run/ where the value would be the sum of the container memory plus the maxSwap value. @@ -41,34 +40,33 @@ If a maxSwap value of 0 is specified, the container will not use swap. Accepted If you are using tasks that use the Fargate launch type, the maxSwap parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-maxswap - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER SharedMemorySize The value for the size in MiB of the /dev/shm volume. This parameter maps to the --shm-size option to docker run: https://docs.docker.com/engine/reference/run/. If you are using tasks that use the Fargate launch type, the sharedMemorySize parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-sharedmemorysize - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Swappiness This allows you to tune a container's memory swappiness behavior. A swappiness value of 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between 0 and 100. If the swappiness parameter is not specified, a default value of 60 is used. If a value is not specified for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness option to docker run: https://docs.docker.com/engine/reference/run/. If you are using tasks that use the Fargate launch type, the swappiness parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-swappiness - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Tmpfs The container path, mount options, and size in MiB of the tmpfs mount. This parameter maps to the --tmpfs option to docker run: https://docs.docker.com/engine/reference/run/. If you are using tasks that use the Fargate launch type, the tmpfs parameter is not supported. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-tmpfs - DuplicatesAllowed: False - ItemType: Tmpfs - Type: List UpdateType: Immutable + Type: List + ItemType: Tmpfs .FUNCTIONALITY Vaporshell @@ -92,7 +90,7 @@ If you are using tasks that use the Fargate launch type, the tmpfs parameter is $Devices, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLogConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLogConfiguration.ps1 index 6af8ed6b6..2a92dd9ba 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLogConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionLogConfiguration.ps1 @@ -19,26 +19,23 @@ For more information about using the awsfirelens log driver, see Custom Log Rout If you have a custom driver that is not listed, you can fork the Amazon ECS container agent project that is available on GitHub: https://github.com/aws/amazon-ecs-agent and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we do not currently provide support for running modified copies of this software. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-logdriver - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Options The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}' Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-options - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map UpdateType: Immutable + Type: Options .PARAMETER SecretOptions The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-logconfiguration-secretoptions - DuplicatesAllowed: False - ItemType: Secret - Type: List UpdateType: Immutable + Type: List + ItemType: Secret .FUNCTIONALITY Vaporshell @@ -59,7 +56,6 @@ If you have a custom driver that is not listed, you can fork the Amazon ECS cont })] $LogDriver, [parameter(Mandatory = $false)] - [System.Collections.Hashtable] $Options, [parameter(Mandatory = $false)] [ValidateScript( { diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionMountPoint.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionMountPoint.ps1 index 512688d08..f9b6e0a20 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionMountPoint.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionMountPoint.ps1 @@ -14,22 +14,22 @@ The MountPoint property specifies details on a volume mount point that is used i The path on the container to mount the host volume at. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-containerpath - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ReadOnly If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-readonly - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER SourceVolume The name of the volume to mount. Must be a volume name referenced in the name parameter of task definition volume. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-sourcevolume - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -51,7 +51,7 @@ The MountPoint property specifies details on a volume mount point that is used i $ContainerPath, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionOptions.ps1 new file mode 100644 index 000000000..c19bf69e0 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionOptions.ps1 @@ -0,0 +1,38 @@ +function Add-VSECSTaskDefinitionOptions { + <# + .SYNOPSIS + Adds an AWS::ECS::TaskDefinition.Options resource property to the template. + + .DESCRIPTION + Adds an AWS::ECS::TaskDefinition.Options resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-options.html + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.ECS.TaskDefinition.Options')] + [cmdletbinding()] + Param + ( + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ECS.TaskDefinition.Options' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionPortMapping.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionPortMapping.ps1 index c7add1851..2c5c1bcab 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionPortMapping.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionPortMapping.ps1 @@ -21,8 +21,8 @@ If you are using containers in a task with the bridge network mode and you speci You cannot expose the same container port for multiple protocols. An error will be returned if this is attempted. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-containerport - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER HostPort The port number on the container instance to reserve for your container. @@ -33,15 +33,15 @@ The default ephemeral port range from 49153 through 65535 is always used for Doc The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html output. A container instance can have up to 100 reserved ports at a time, including the default reserved ports. Automatically assigned ports don't count toward the 100 reserved ports limit. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-readonly - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Protocol The protocol used for the port mapping. Valid values are tcp and udp. The default is tcp. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-sourcevolume - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionProxyConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionProxyConfiguration.ps1 index 2ae509185..3a30e95f5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionProxyConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionProxyConfiguration.ps1 @@ -18,8 +18,8 @@ For tasks using the Fargate launch type, the task or service requires platform v The name of the container that will serve as the App Mesh proxy. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-containername - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ProxyConfigurationProperties The set of network configuration parameters to provide the Container Network Interface CNI plugin, specified as key-value pairs. @@ -32,17 +32,17 @@ For tasks using the Fargate launch type, the task or service requires platform v + EgressIgnoredIPs - Required The egress traffic going to the specified IP addresses is ignored and not redirected to the ProxyEgressPort. It can be an empty list. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-proxyconfigurationproperties - DuplicatesAllowed: False - ItemType: KeyValuePair - Type: List UpdateType: Immutable + Type: List + ItemType: KeyValuePair + DuplicatesAllowed: False .PARAMETER Type The proxy type. The only supported value is APPMESH. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-type - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionRepositoryCredentials.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionRepositoryCredentials.ps1 index 51a8bf66d..901c8d420 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionRepositoryCredentials.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionRepositoryCredentials.ps1 @@ -15,8 +15,8 @@ The RepositoryCredentials property specifies the repository credentials for priv When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret exists in the same Region as the task that you are launching then you can use either the full ARN or the name of the secret. When you are using the AWS Management Console, you must specify the full ARN of the secret. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html#cfn-ecs-taskdefinition-repositorycredentials-credentialsparameter - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionResourceRequirement.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionResourceRequirement.ps1 index c7afb5eb6..f17d65848 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionResourceRequirement.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionResourceRequirement.ps1 @@ -14,8 +14,8 @@ The ResourceRequirement property specifies the type and amount of a resource to The type of resource to assign to a container. The supported values are GPU or InferenceAccelerator. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html#cfn-ecs-taskdefinition-resourcerequirement-type - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Value The value for the specified resource type. @@ -23,8 +23,8 @@ If the GPU type is used, the value is the number of physical GPUs the Amazon ECS If the InferenceAccelerator type is used, the value should match the DeviceName for an InferenceAccelerator: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html specified in a task definition. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html#cfn-ecs-taskdefinition-resourcerequirement-value - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSecret.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSecret.ps1 index 102e6ee83..eae8abf2b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSecret.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSecret.ps1 @@ -14,16 +14,16 @@ The Secret property specifies an object representing the secret to expose to you The name of the secret. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html#cfn-ecs-taskdefinition-secret-name - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ValueFrom The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager Parameter Store. If the AWS Systems Manager Parameter Store parameter exists in the same Region as the task you are launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html#cfn-ecs-taskdefinition-secret-valuefrom - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSystemControl.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSystemControl.ps1 index ecdf7e2ea..6dea051f1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSystemControl.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionSystemControl.ps1 @@ -20,15 +20,15 @@ It is not recommended that you specify network-related systemControls parameters The namespaced kernel parameter for which to set a value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-namespace - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER Value The value for the namespaced kernel parameter specified in namespace. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-value - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -37,7 +37,7 @@ It is not recommended that you specify network-related systemControls parameters [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -48,7 +48,7 @@ It is not recommended that you specify network-related systemControls parameters } })] $Namespace, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTaskDefinitionPlacementConstraint.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTaskDefinitionPlacementConstraint.ps1 index 3a49bed57..6452263a5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTaskDefinitionPlacementConstraint.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTaskDefinitionPlacementConstraint.ps1 @@ -14,19 +14,19 @@ For more information, see Task Placement Constraints: https://docs.aws.amazon.co .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html - .PARAMETER Expression - A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html in the *Amazon Elastic Container Service Developer Guide*. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-expression - PrimitiveType: String - UpdateType: Immutable - .PARAMETER Type The type of constraint. The MemberOf constraint restricts selection to be from a group of valid candidates. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-type + UpdateType: Immutable PrimitiveType: String + + .PARAMETER Expression + A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html in the *Amazon Elastic Container Service Developer Guide*. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-expression UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -35,7 +35,7 @@ For more information, see Task Placement Constraints: https://docs.aws.amazon.co [cmdletbinding()] Param ( - [parameter(Mandatory = $false)] + [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -45,8 +45,8 @@ For more information, see Task Placement Constraints: https://docs.aws.amazon.co $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Expression, - [parameter(Mandatory = $true)] + $Type, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -56,7 +56,7 @@ For more information, see Task Placement Constraints: https://docs.aws.amazon.co $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Type + $Expression ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTmpfs.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTmpfs.ps1 index f9e44d91d..982b94fd0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTmpfs.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionTmpfs.ps1 @@ -14,25 +14,24 @@ The Tmpfs property specifies the container path, mount options, and size of the The absolute file path where the tmpfs volume is to be mounted. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-containerpath - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER MountOptions The list of tmpfs volume mount options. Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol" Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-mountoptions - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Immutable + Type: List + PrimitiveItemType: String .PARAMETER Size The size in MiB of the tmpfs volume. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-size - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionUlimit.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionUlimit.ps1 index 4124b48d3..432144146 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionUlimit.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionUlimit.ps1 @@ -14,22 +14,22 @@ The Ulimit property specifies the ulimit settings to pass to the container. The hard limit for the ulimit type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-hardlimit - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .PARAMETER Name The type of the ulimit. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-name - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER SoftLimit The soft limit for the ulimit type. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-softlimit - PrimitiveType: Integer UpdateType: Immutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolume.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolume.ps1 index 0733187d9..00f967d1d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolume.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolume.ps1 @@ -14,23 +14,23 @@ The Volume property specifies a data volume used in a task definition. For tasks This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify the host parameter instead. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volume-dockervolumeconfiguration - Type: DockerVolumeConfiguration UpdateType: Immutable + Type: DockerVolumeConfiguration .PARAMETER Host This parameter is specified when you are using bind mount host volumes. Bind mount host volumes are supported when you are using either the EC2 or Fargate launch types. The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop running. Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers cannot mount directories on a different drive, and mount point cannot be across drives. For example, you can mount C:mypath:C:mypath and D::D:, but not D:mypath:C:mypath or D::C:mypath. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-host - Type: HostVolumeProperties UpdateType: Immutable + Type: HostVolumeProperties .PARAMETER Name The name of the volume. Up to 255 letters uppercase and lowercase, numbers, and hyphens are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-name - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolumeFrom.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolumeFrom.ps1 index f243fdbb7..19b6a8bda 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolumeFrom.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskDefinitionVolumeFrom.ps1 @@ -14,15 +14,15 @@ The VolumeFrom property specifies details on a data volume from another containe If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-readonly - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER SourceContainer The name of another container within the same task definition from which to mount volumes. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-sourcecontainer - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -33,7 +33,7 @@ The VolumeFrom property specifies details on a data volume from another containe ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSECSTaskSetScale.ps1 b/VaporShell/Public/Resource Property Types/Add-VSECSTaskSetScale.ps1 index 06c0afd5c..c399ac070 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSECSTaskSetScale.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSECSTaskSetScale.ps1 @@ -44,7 +44,7 @@ A floating-point percentage of the desired number of tasks to place and keep run $Unit, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointAccessPointTag.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointAccessPointTag.ps1 new file mode 100644 index 000000000..37ced1e1a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointAccessPointTag.ps1 @@ -0,0 +1,70 @@ +function Add-VSEFSAccessPointAccessPointTag { + <# + .SYNOPSIS + Adds an AWS::EFS::AccessPoint.AccessPointTag resource property to the template. + + .DESCRIPTION + Adds an AWS::EFS::AccessPoint.AccessPointTag resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html + + .PARAMETER Key + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-key + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Value + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-value + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EFS.AccessPoint.AccessPointTag')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Key, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Value + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.AccessPoint.AccessPointTag' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointCreationInfo.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointCreationInfo.ps1 new file mode 100644 index 000000000..daf193685 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointCreationInfo.ps1 @@ -0,0 +1,86 @@ +function Add-VSEFSAccessPointCreationInfo { + <# + .SYNOPSIS + Adds an AWS::EFS::AccessPoint.CreationInfo resource property to the template. + + .DESCRIPTION + Adds an AWS::EFS::AccessPoint.CreationInfo resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html + + .PARAMETER OwnerUid + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-owneruid + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER OwnerGid + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-ownergid + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Permissions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-permissions + UpdateType: Immutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EFS.AccessPoint.CreationInfo')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OwnerUid, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OwnerGid, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Permissions + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.AccessPoint.CreationInfo' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointPosixUser.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointPosixUser.ps1 new file mode 100644 index 000000000..27e89312d --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointPosixUser.ps1 @@ -0,0 +1,78 @@ +function Add-VSEFSAccessPointPosixUser { + <# + .SYNOPSIS + Adds an AWS::EFS::AccessPoint.PosixUser resource property to the template. + + .DESCRIPTION + Adds an AWS::EFS::AccessPoint.PosixUser resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html + + .PARAMETER Uid + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-uid + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Gid + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-gid + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER SecondaryGids + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-secondarygids + UpdateType: Immutable + Type: List + PrimitiveItemType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EFS.AccessPoint.PosixUser')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Uid, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Gid, + [parameter(Mandatory = $false)] + $SecondaryGids + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.AccessPoint.PosixUser' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointRootDirectory.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointRootDirectory.ps1 new file mode 100644 index 000000000..2ec3a71f7 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSAccessPointRootDirectory.ps1 @@ -0,0 +1,61 @@ +function Add-VSEFSAccessPointRootDirectory { + <# + .SYNOPSIS + Adds an AWS::EFS::AccessPoint.RootDirectory resource property to the template. + + .DESCRIPTION + Adds an AWS::EFS::AccessPoint.RootDirectory resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html + + .PARAMETER Path + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-path + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER CreationInfo + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-creationinfo + UpdateType: Immutable + Type: CreationInfo + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EFS.AccessPoint.RootDirectory')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Path, + [parameter(Mandatory = $false)] + $CreationInfo + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.AccessPoint.RootDirectory' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemBackupPolicy.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemBackupPolicy.ps1 new file mode 100644 index 000000000..ff1a6655f --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemBackupPolicy.ps1 @@ -0,0 +1,54 @@ +function Add-VSEFSFileSystemBackupPolicy { + <# + .SYNOPSIS + Adds an AWS::EFS::FileSystem.BackupPolicy resource property to the template. + + .DESCRIPTION + Adds an AWS::EFS::FileSystem.BackupPolicy resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html + + .PARAMETER Status + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html#cfn-efs-filesystem-backuppolicy-status + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.EFS.FileSystem.BackupPolicy')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Status + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.FileSystem.BackupPolicy' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemElasticFileSystemTag.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemElasticFileSystemTag.ps1 index f52cffb6e..ab759ee2c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemElasticFileSystemTag.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemElasticFileSystemTag.ps1 @@ -1,28 +1,24 @@ function Add-VSEFSFileSystemElasticFileSystemTag { <# .SYNOPSIS - Adds an AWS::EFS::FileSystem.ElasticFileSystemTag resource property to the template. A tag is a key-value pair attached to a file system. Allowed characters in the Key and Value properties are letters, white space, and numbers that can be represented in UTF-8, and the following characters: + - = . _ : / + Adds an AWS::EFS::FileSystem.ElasticFileSystemTag resource property to the template. .DESCRIPTION Adds an AWS::EFS::FileSystem.ElasticFileSystemTag resource property to the template. -A tag is a key-value pair attached to a file system. Allowed characters in the Key and Value properties are letters, white space, and numbers that can be represented in UTF-8, and the following characters: + - = . _ : / + .LINK - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html .PARAMETER Key - The tag key String. The key can't start with aws:. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-key - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-key UpdateType: Mutable + PrimitiveType: String .PARAMETER Value - The value of the tag key. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html#cfn-efs-filesystem-filesystemtags-value - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-value UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemLifecyclePolicy.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemLifecyclePolicy.ps1 index dd56cc48e..39f8c5b45 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemLifecyclePolicy.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEFSFileSystemLifecyclePolicy.ps1 @@ -1,21 +1,19 @@ function Add-VSEFSFileSystemLifecyclePolicy { <# .SYNOPSIS - Adds an AWS::EFS::FileSystem.LifecyclePolicy resource property to the template. Describes a policy used by EFS lifecycle management to transition files to the Infrequent Access (IA storage class. + Adds an AWS::EFS::FileSystem.LifecyclePolicy resource property to the template. .DESCRIPTION Adds an AWS::EFS::FileSystem.LifecyclePolicy resource property to the template. -Describes a policy used by EFS lifecycle management to transition files to the Infrequent Access (IA storage class. + .LINK - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticfilesystem-filesystem-lifecyclepolicy.html + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html .PARAMETER TransitionToIA - A value that describes the period of time that a file is not accessed, after which it transitions to the IA storage class. Metadata operations such as listing the contents of a directory don't count as file access events. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticfilesystem-filesystem-lifecyclepolicy.html#cfn-elasticfilesystem-filesystem-lifecyclepolicy-transitiontoia - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html#cfn-efs-filesystem-lifecyclepolicy-transitiontoia UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSEKSNodegroupScalingConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEKSNodegroupScalingConfig.ps1 index 32ab4770c..633adbfb2 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEKSNodegroupScalingConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEKSNodegroupScalingConfig.ps1 @@ -40,7 +40,7 @@ An object representing the scaling configuration details for the Auto Scaling gr ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -51,7 +51,7 @@ An object representing the scaling configuration details for the Auto Scaling gr $MinSize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -62,7 +62,7 @@ An object representing the scaling configuration details for the Auto Scaling gr $DesiredSize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterCloudWatchAlarmDefinition.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterCloudWatchAlarmDefinition.ps1 index e6bd83bc6..ec4a2ecf0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterCloudWatchAlarmDefinition.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterCloudWatchAlarmDefinition.ps1 @@ -161,7 +161,7 @@ CloudWatchAlarmDefinition is a subproperty of the ScalingTrigger property, which $Statistic, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterEbsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterEbsConfiguration.ps1 index 60bf14cb1..4b937a012 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterEbsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterEbsConfiguration.ps1 @@ -46,7 +46,7 @@ EbsConfiguration is a subproperty of InstanceFleetConfig or InstanceGroupConfig. $EbsBlockDeviceConfigs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterInstanceTypeConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterInstanceTypeConfig.ps1 index a1cadf5fd..aadf924ff 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterInstanceTypeConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterInstanceTypeConfig.ps1 @@ -78,7 +78,7 @@ InstanceTypeConfig is a sub-property of InstanceFleetConfig. InstanceTypeConfig $BidPrice, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterJobFlowInstancesConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterJobFlowInstancesConfig.ps1 index 4ea48b8c1..403d535a5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRClusterJobFlowInstancesConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRClusterJobFlowInstancesConfig.ps1 @@ -203,7 +203,7 @@ The instance fleet configuration is available only in Amazon EMR versions 4.8.0 $HadoopVersion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -231,7 +231,7 @@ The instance fleet configuration is available only in Amazon EMR versions 4.8.0 $ServiceAccessSecurityGroup, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigEbsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigEbsConfiguration.ps1 index 0226559b1..142b91164 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigEbsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigEbsConfiguration.ps1 @@ -46,7 +46,7 @@ EbsConfiguration determines the EBS volumes to attach to EMR cluster instances. $EbsBlockDeviceConfigs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigInstanceTypeConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigInstanceTypeConfig.ps1 index f66d8b2ff..408a9ecb0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigInstanceTypeConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceFleetConfigInstanceTypeConfig.ps1 @@ -79,7 +79,7 @@ An optional configuration specification to be used when provisioning cluster ins $BidPrice, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigCloudWatchAlarmDefinition.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigCloudWatchAlarmDefinition.ps1 index d4cf65084..36caf88a1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigCloudWatchAlarmDefinition.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigCloudWatchAlarmDefinition.ps1 @@ -161,7 +161,7 @@ CloudWatchAlarmDefinition is a subproperty of the ScalingTrigger property, which $Statistic, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigEbsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigEbsConfiguration.ps1 index b84b0f83a..6007fb2d8 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigEbsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEMRInstanceGroupConfigEbsConfiguration.ps1 @@ -46,7 +46,7 @@ The Amazon EBS configuration of a cluster instance. $EbsBlockDeviceConfigs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxAgeRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxAgeRule.ps1 index 22c32e37b..75f1633f2 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxAgeRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxAgeRule.ps1 @@ -42,7 +42,7 @@ MaxAgeRule is a property of the ApplicationVersionLifecycleConfig: https://docs. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -53,7 +53,7 @@ MaxAgeRule is a property of the ApplicationVersionLifecycleConfig: https://docs. $DeleteSourceFromS3, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxCountRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxCountRule.ps1 index cd3a1f771..aa0a74bb9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxCountRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticBeanstalkApplicationMaxCountRule.ps1 @@ -42,7 +42,7 @@ MaxCountRule is a property of the ApplicationVersionLifecycleConfig: https://doc ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -53,7 +53,7 @@ MaxCountRule is a property of the ApplicationVersionLifecycleConfig: https://doc $DeleteSourceFromS3, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerAccessLoggingPolicy.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerAccessLoggingPolicy.ps1 index e741c35f6..d866471b8 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerAccessLoggingPolicy.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerAccessLoggingPolicy.ps1 @@ -59,7 +59,7 @@ Default: 60 minutes $EmitInterval, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerConnectionDrainingPolicy.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerConnectionDrainingPolicy.ps1 index 457621eca..45f3b77b7 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerConnectionDrainingPolicy.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingLoadBalancerConnectionDrainingPolicy.ps1 @@ -33,7 +33,7 @@ Specifies the connection draining settings for your Classic Load Balancer. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerRuleTargetGroupStickinessConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerRuleTargetGroupStickinessConfig.ps1 index 65ccdefd7..67f0b4ff3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerRuleTargetGroupStickinessConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerRuleTargetGroupStickinessConfig.ps1 @@ -44,7 +44,7 @@ Information about the target group stickiness for a rule. $DurationSeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerTargetGroupStickinessConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerTargetGroupStickinessConfig.ps1 index d23711bba..4fc991f3f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerTargetGroupStickinessConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2ListenerTargetGroupStickinessConfig.ps1 @@ -44,7 +44,7 @@ Information about the target group stickiness for a rule. $DurationSeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2LoadBalancerSubnetMapping.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2LoadBalancerSubnetMapping.ps1 index c6b187908..36e4e5b9d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2LoadBalancerSubnetMapping.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticLoadBalancingV2LoadBalancerSubnetMapping.ps1 @@ -17,6 +17,13 @@ Specifies a subnet to attach to an Application Load Balancer or a Network Load B PrimitiveType: String UpdateType: Mutable + .PARAMETER PrivateIPv4Address + *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-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-privateipv4address + PrimitiveType: String + UpdateType: Mutable + .PARAMETER SubnetId The ID of the subnet. @@ -31,7 +38,7 @@ Specifies a subnet to attach to an Application Load Balancer or a Network Load B [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -42,6 +49,17 @@ Specifies a subnet to attach to an Application Load Balancer or a Network Load B } })] $AllocationId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PrivateIPv4Address, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainAdvancedSecurityOptionsInput.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainAdvancedSecurityOptionsInput.ps1 new file mode 100644 index 000000000..14461558e --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainAdvancedSecurityOptionsInput.ps1 @@ -0,0 +1,77 @@ +function Add-VSElasticsearchDomainAdvancedSecurityOptionsInput { + <# + .SYNOPSIS + Adds an AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput resource property to the template. + + .DESCRIPTION + Adds an AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html + + .PARAMETER Enabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-enabled + PrimitiveType: Boolean + UpdateType: Immutable + + .PARAMETER InternalUserDatabaseEnabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-internaluserdatabaseenabled + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER MasterUserOptions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-masteruseroptions + Type: MasterUserOptions + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Elasticsearch.Domain.AdvancedSecurityOptionsInput')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Enabled, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $InternalUserDatabaseEnabled, + [parameter(Mandatory = $false)] + $MasterUserOptions + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Elasticsearch.Domain.AdvancedSecurityOptionsInput' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainCognitoOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainCognitoOptions.ps1 index b32a71495..2e84c816b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainCognitoOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainCognitoOptions.ps1 @@ -47,7 +47,7 @@ Configures Amazon ES to use Amazon Cognito authentication for Kibana. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainDomainEndpointOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainDomainEndpointOptions.ps1 new file mode 100644 index 000000000..681a81aaa --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainDomainEndpointOptions.ps1 @@ -0,0 +1,70 @@ +function Add-VSElasticsearchDomainDomainEndpointOptions { + <# + .SYNOPSIS + Adds an AWS::Elasticsearch::Domain.DomainEndpointOptions resource property to the template. + + .DESCRIPTION + Adds an AWS::Elasticsearch::Domain.DomainEndpointOptions resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html + + .PARAMETER EnforceHTTPS + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-enforcehttps + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER TLSSecurityPolicy + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-tlssecuritypolicy + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Elasticsearch.Domain.DomainEndpointOptions')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnforceHTTPS, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TLSSecurityPolicy + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Elasticsearch.Domain.DomainEndpointOptions' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEBSOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEBSOptions.ps1 index 0c1e45d15..f9b8dc887 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEBSOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEBSOptions.ps1 @@ -47,7 +47,7 @@ The configurations of Amazon Elastic Block Store (Amazon EBS volumes that are at ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainElasticsearchClusterConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainElasticsearchClusterConfig.ps1 index 183177e85..ab27a1697 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainElasticsearchClusterConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainElasticsearchClusterConfig.ps1 @@ -79,7 +79,7 @@ The cluster configuration for the Amazon ES domain. You can specify options such $DedicatedMasterCount, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -125,7 +125,7 @@ The cluster configuration for the Amazon ES domain. You can specify options such $ZoneAwarenessConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEncryptionAtRestOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEncryptionAtRestOptions.ps1 index 6d5798a2f..901194c2f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEncryptionAtRestOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainEncryptionAtRestOptions.ps1 @@ -33,7 +33,7 @@ Whether the domain should encrypt data at rest, and if so, the AWS Key Managemen ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainLogPublishingOption.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainLogPublishingOption.ps1 index fdaf7f15f..1a3f25a82 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainLogPublishingOption.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainLogPublishingOption.ps1 @@ -45,7 +45,7 @@ Default: false. $CloudWatchLogsLogGroupArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainMasterUserOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainMasterUserOptions.ps1 new file mode 100644 index 000000000..1da35228c --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainMasterUserOptions.ps1 @@ -0,0 +1,88 @@ +function Add-VSElasticsearchDomainMasterUserOptions { + <# + .SYNOPSIS + Adds an AWS::Elasticsearch::Domain.MasterUserOptions resource property to the template. + + .DESCRIPTION + Adds an AWS::Elasticsearch::Domain.MasterUserOptions resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html + + .PARAMETER MasterUserARN + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masteruserarn + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER MasterUserName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masterusername + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER MasterUserPassword + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masteruserpassword + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Elasticsearch.Domain.MasterUserOptions')] + [cmdletbinding()] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","MasterUserPassword")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","MasterUserPassword")] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MasterUserARN, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MasterUserName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MasterUserPassword + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Elasticsearch.Domain.MasterUserOptions' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainNodeToNodeEncryptionOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainNodeToNodeEncryptionOptions.ps1 index 26b4680dc..abf3e4669 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainNodeToNodeEncryptionOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSElasticsearchDomainNodeToNodeEncryptionOptions.ps1 @@ -26,7 +26,7 @@ Specifies whether node-to-node encryption is enabled. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSEventsRuleHttpParameters.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEventsRuleHttpParameters.ps1 new file mode 100644 index 000000000..da74af490 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSEventsRuleHttpParameters.ps1 @@ -0,0 +1,67 @@ +function Add-VSEventsRuleHttpParameters { + <# + .SYNOPSIS + Adds an AWS::Events::Rule.HttpParameters resource property to the template. + + .DESCRIPTION + Adds an AWS::Events::Rule.HttpParameters resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html + + .PARAMETER HeaderParameters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-headerparameters + DuplicatesAllowed: False + PrimitiveItemType: String + Type: Map + UpdateType: Mutable + + .PARAMETER PathParameterValues + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-pathparametervalues + DuplicatesAllowed: False + PrimitiveItemType: String + Type: List + UpdateType: Mutable + + .PARAMETER QueryStringParameters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-querystringparameters + DuplicatesAllowed: False + PrimitiveItemType: String + Type: Map + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Events.Rule.HttpParameters')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [System.Collections.Hashtable] + $HeaderParameters, + [parameter(Mandatory = $false)] + $PathParameterValues, + [parameter(Mandatory = $false)] + [System.Collections.Hashtable] + $QueryStringParameters + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Events.Rule.HttpParameters' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSEventsRuleTarget.ps1 b/VaporShell/Public/Resource Property Types/Add-VSEventsRuleTarget.ps1 index f87d2f222..7cb0acbd0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSEventsRuleTarget.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSEventsRuleTarget.ps1 @@ -33,6 +33,11 @@ The Targets property of the AWS::Events::Rule: https://docs.aws.amazon.com/AWSCl Type: EcsParameters UpdateType: Mutable + .PARAMETER HttpParameters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-httpparameters + Type: HttpParameters + UpdateType: Mutable + .PARAMETER Id A name for the target. Use a string that will help you identify the target. Each target associated with a rule must have an Id unique for that rule. The Id can include alphanumeric characters, periods ., hyphens -, and underscores _. @@ -114,6 +119,8 @@ If you specify an SQS FIFO queue as a target, the queue must have content-based $BatchParameters, [parameter(Mandatory = $false)] $EcsParameters, + [parameter(Mandatory = $false)] + $HttpParameters, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" diff --git a/VaporShell/Public/Resource Property Types/Add-VSFMSPolicyIEMap.ps1 b/VaporShell/Public/Resource Property Types/Add-VSFMSPolicyIEMap.ps1 index 380aff7ec..86284c94d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSFMSPolicyIEMap.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSFMSPolicyIEMap.ps1 @@ -20,6 +20,14 @@ The key to the map is ACCOUNT. For example, a valid IEMap would be {“ACCOUNT Type: List PrimitiveItemType: String + .PARAMETER ORGUNIT + *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-fms-policy-iemap.html#cfn-fms-policy-iemap-orgunit + UpdateType: Mutable + Type: List + PrimitiveItemType: String + .FUNCTIONALITY Vaporshell #> @@ -28,7 +36,9 @@ The key to the map is ACCOUNT. For example, a valid IEMap would be {“ACCOUNT Param ( [parameter(Mandatory = $false)] - $ACCOUNT + $ACCOUNT, + [parameter(Mandatory = $false)] + $ORGUNIT ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemLustreConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemLustreConfiguration.ps1 index 36d05ed67..47beb35af 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemLustreConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemLustreConfiguration.ps1 @@ -42,6 +42,20 @@ Encryption of data in-transit for SCRATCH_2 and PERSISTENT_1 deployment types is PrimitiveType: String UpdateType: Immutable + .PARAMETER DailyAutomaticBackupStartTime + *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-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-dailyautomaticbackupstarttime + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER CopyTagsToBackups + *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-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-copytagstobackups + PrimitiveType: Boolean + UpdateType: Immutable + .PARAMETER ExportPath Optional The path in Amazon S3 where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system. If an ExportPath value is not provided, Amazon FSx sets a default export path, s3://import-bucket/FSxLustrecreation-timestamp]. The timestamp is in UTC format, for example s3://import-bucket/FSxLustre20181105T222312Z. The Amazon S3 export bucket must be the same as the import bucket specified by ImportPath. If you only specify a bucket name, such as s3://import-bucket, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as s3://import-bucket/custom-optional-prefix], Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket. @@ -58,6 +72,13 @@ Valid values are 50, 100, 200. PrimitiveType: Integer UpdateType: Immutable + .PARAMETER AutomaticBackupRetentionDays + *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-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-automaticbackupretentiondays + PrimitiveType: Integer + UpdateType: Mutable + .FUNCTIONALITY Vaporshell #> @@ -110,6 +131,28 @@ Valid values are 50, 100, 200. })] $DeploymentType, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DailyAutomaticBackupStartTime, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CopyTagsToBackups, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -130,7 +173,18 @@ Valid values are 50, 100, 200. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $PerUnitStorageThroughput + $PerUnitStorageThroughput, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AutomaticBackupRetentionDays ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemWindowsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemWindowsConfiguration.ps1 index 6e0f5e5ef..8fe081e7b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemWindowsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSFSxFileSystemWindowsConfiguration.ps1 @@ -47,7 +47,7 @@ For more information, see Availability and Durability: Single-AZ and Multi-AZ F Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-throughputcapacity PrimitiveType: Integer - UpdateType: Immutable + UpdateType: Mutable .PARAMETER CopyTagsToBackups A boolean flag indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value. @@ -132,7 +132,7 @@ For more information, see Availability and Durability: Single-AZ and Multi-AZ F $ThroughputCapacity, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlobalAcceleratorEndpointGroupEndpointConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlobalAcceleratorEndpointGroupEndpointConfiguration.ps1 index 4a2207e46..0d77c35f7 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlobalAcceleratorEndpointGroupEndpointConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlobalAcceleratorEndpointGroupEndpointConfiguration.ps1 @@ -56,7 +56,7 @@ function Add-VSGlobalAcceleratorEndpointGroupEndpointConfiguration { $Weight, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlueClassifierCsvClassifier.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlueClassifierCsvClassifier.ps1 index 914da7293..094af34af 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlueClassifierCsvClassifier.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlueClassifierCsvClassifier.ps1 @@ -104,7 +104,7 @@ A classifier for custom CSV content. $Header, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -115,7 +115,7 @@ A classifier for custom CSV content. $AllowSingleColumn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.ps1 index 64a12ea98..f5e1e33d1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlueDataCatalogEncryptionSettingsConnectionPasswordEncryption.ps1 @@ -40,7 +40,7 @@ If connection password protection is enabled, the caller of CreateConnection and ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlueJobExecutionProperty.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlueJobExecutionProperty.ps1 index f9a0738b3..9a2a8c63b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlueJobExecutionProperty.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlueJobExecutionProperty.ps1 @@ -26,7 +26,7 @@ An execution property of a job. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlueMLTransformFindMatchesParameters.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlueMLTransformFindMatchesParameters.ps1 index 6bf7f5abf..c2c5d4dbf 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlueMLTransformFindMatchesParameters.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlueMLTransformFindMatchesParameters.ps1 @@ -52,7 +52,7 @@ Cost measures how many compute resources, and thus money, are consumed to run th ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -63,7 +63,7 @@ Cost measures how many compute resources, and thus money, are consumed to run th $PrecisionRecallTradeoff, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -85,7 +85,7 @@ Cost measures how many compute resources, and thus money, are consumed to run th $PrimaryKeyColumnName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGluePartitionStorageDescriptor.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGluePartitionStorageDescriptor.ps1 index 7120b00e7..64944b053 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGluePartitionStorageDescriptor.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGluePartitionStorageDescriptor.ps1 @@ -107,7 +107,7 @@ You must specify this property if the partition contains any dimension columns. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -190,7 +190,7 @@ You must specify this property if the partition contains any dimension columns. $SortColumns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGlueTableStorageDescriptor.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGlueTableStorageDescriptor.ps1 index 940acb481..9bc6cc71e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGlueTableStorageDescriptor.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGlueTableStorageDescriptor.ps1 @@ -106,7 +106,7 @@ Describes the physical storage of table data. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -189,7 +189,7 @@ Describes the physical storage of table data. $SortColumns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionCore.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionCore.ps1 index dfb60c627..b81a86d66 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionCore.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionCore.ps1 @@ -49,7 +49,7 @@ function Add-VSGreengrassCoreDefinitionCore { ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionVersionCore.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionVersionCore.ps1 index b941cc24c..4c06af209 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionVersionCore.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassCoreDefinitionVersionCore.ps1 @@ -49,7 +49,7 @@ function Add-VSGreengrassCoreDefinitionVersionCore { ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionDevice.ps1 index d1f234e04..1e873fa53 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionDevice.ps1 @@ -49,7 +49,7 @@ function Add-VSGreengrassDeviceDefinitionDevice { ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionVersionDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionVersionDevice.ps1 index 4eef3dd5a..ca5a12487 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionVersionDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassDeviceDefinitionVersionDevice.ps1 @@ -49,7 +49,7 @@ function Add-VSGreengrassDeviceDefinitionVersionDevice { ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionEnvironment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionEnvironment.ps1 index e0b7e43a3..67e306a9b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionEnvironment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionEnvironment.ps1 @@ -76,7 +76,7 @@ This property applies only to Lambda functions that run in a Greengrass containe $ResourceAccessPolicies, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionFunctionConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionFunctionConfiguration.ps1 index 9224f34a5..375a5f1f3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionFunctionConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionFunctionConfiguration.ps1 @@ -82,7 +82,7 @@ This property applies only to Lambda functions that run in a Greengrass containe $MemorySize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionEnvironment.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionEnvironment.ps1 index b7b05b0a8..29c515419 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionEnvironment.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionEnvironment.ps1 @@ -76,7 +76,7 @@ This property applies only to Lambda functions that run in a Greengrass containe $ResourceAccessPolicies, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionFunctionConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionFunctionConfiguration.ps1 index cf5cc00fe..d2f91cccc 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionFunctionConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassFunctionDefinitionVersionFunctionConfiguration.ps1 @@ -82,7 +82,7 @@ This property applies only to Lambda functions that run in a Greengrass containe $MemorySize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionGroupOwnerSetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionGroupOwnerSetting.ps1 index 14556f96c..d930dc6f6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionGroupOwnerSetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionGroupOwnerSetting.ps1 @@ -35,7 +35,7 @@ function Add-VSGreengrassResourceDefinitionGroupOwnerSetting { ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting.ps1 index 1e01901c4..84b192bf1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting.ps1 @@ -35,7 +35,7 @@ function Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting { ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSGroundStationDataflowEndpointGroupDataflowEndpoint.ps1 b/VaporShell/Public/Resource Property Types/Add-VSGroundStationDataflowEndpointGroupDataflowEndpoint.ps1 index 9d76e8f47..b4c0b2d57 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSGroundStationDataflowEndpointGroupDataflowEndpoint.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSGroundStationDataflowEndpointGroupDataflowEndpoint.ps1 @@ -25,6 +25,11 @@ When listing available contacts for a satellite, Ground Station searches for a d UpdateType: Mutable Type: SocketAddress + .PARAMETER Mtu + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html#cfn-groundstation-dataflowendpointgroup-dataflowendpoint-mtu + UpdateType: Mutable + PrimitiveType: Integer + .FUNCTIONALITY Vaporshell #> @@ -44,7 +49,18 @@ When listing available contacts for a satellite, Ground Station searches for a d })] $Name, [parameter(Mandatory = $false)] - $Address + $Address, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Mtu ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSIAMUserLoginProfile.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIAMUserLoginProfile.ps1 index c065352b4..121b4161b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIAMUserLoginProfile.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIAMUserLoginProfile.ps1 @@ -48,7 +48,7 @@ Contains the user name and password create date for a user. $Password, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderDistributionConfigurationDistribution.ps1 b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderDistributionConfigurationDistribution.ps1 index e98caa3a7..7937557d5 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderDistributionConfigurationDistribution.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderDistributionConfigurationDistribution.ps1 @@ -39,7 +39,7 @@ The distribution configuration distribution defines the settings for a specific [cmdletbinding()] Param ( - [parameter(Mandatory = $false)] + [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageImageTestsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageImageTestsConfiguration.ps1 index f9394381a..8e8cb73dc 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageImageTestsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageImageTestsConfiguration.ps1 @@ -29,7 +29,7 @@ function Add-VSImageBuilderImageImageTestsConfiguration { ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImagePipelineImageTestsConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImagePipelineImageTestsConfiguration.ps1 index e55c7a611..942dd2ef0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImagePipelineImageTestsConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImagePipelineImageTestsConfiguration.ps1 @@ -33,7 +33,7 @@ The image pipeline image tests configuration is the configuration of the image t ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.ps1 b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.ps1 index e00035540..32f0d6a99 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification.ps1 @@ -68,7 +68,7 @@ The image recipe EBS instance block device specification includes the Amazon EBS ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -79,7 +79,7 @@ The image recipe EBS instance block device specification includes the Amazon EBS $Encrypted, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsChannelRetentionPeriod.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsChannelRetentionPeriod.ps1 index dcb869dfb..13baf53c0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsChannelRetentionPeriod.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsChannelRetentionPeriod.ps1 @@ -44,7 +44,7 @@ How long, in days, message data is kept. $NumberOfDays, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetRetentionPeriod.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetRetentionPeriod.ps1 index 499f9fb33..7d17e724b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetRetentionPeriod.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetRetentionPeriod.ps1 @@ -44,7 +44,7 @@ How long, in days, message data is kept. $NumberOfDays, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVariable.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVariable.ps1 index bee459d8c..64dd6d6c4 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVariable.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVariable.ps1 @@ -56,7 +56,7 @@ An instance of a variable to be passed to the containerAction execution. Each va $DatasetContentVersionValue, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVersioningConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVersioningConfiguration.ps1 index 75383ddf6..bf2f5bace 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVersioningConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatasetVersioningConfiguration.ps1 @@ -44,7 +44,7 @@ Information about the versioning of dataset contents. $MaxVersions, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatastoreRetentionPeriod.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatastoreRetentionPeriod.ps1 index 2ad5e081b..6ea8ea714 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatastoreRetentionPeriod.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTAnalyticsDatastoreRetentionPeriod.ps1 @@ -44,7 +44,7 @@ How long, in days, message data is kept. $NumberOfDays, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTEventsDetectorModelSqs.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTEventsDetectorModelSqs.ps1 index b03dc14d7..780bc9674 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTEventsDetectorModelSqs.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTEventsDetectorModelSqs.ps1 @@ -40,7 +40,7 @@ Sends information about the detector model instance and the event which triggere ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTProvisioningTemplateProvisioningHook.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTProvisioningTemplateProvisioningHook.ps1 new file mode 100644 index 000000000..d1e684f8e --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTProvisioningTemplateProvisioningHook.ps1 @@ -0,0 +1,70 @@ +function Add-VSIoTProvisioningTemplateProvisioningHook { + <# + .SYNOPSIS + Adds an AWS::IoT::ProvisioningTemplate.ProvisioningHook resource property to the template. + + .DESCRIPTION + Adds an AWS::IoT::ProvisioningTemplate.ProvisioningHook resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html + + .PARAMETER TargetArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-targetarn + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER PayloadVersion + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-payloadversion + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.IoT.ProvisioningTemplate.ProvisioningHook')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TargetArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PayloadVersion + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.IoT.ProvisioningTemplate.ProvisioningHook' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleSqsAction.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleSqsAction.ps1 index 5f4568589..3da150c3a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleSqsAction.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleSqsAction.ps1 @@ -62,7 +62,7 @@ Describes an action to publish data to an Amazon SQS queue. $RoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleTopicRulePayload.ps1 b/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleTopicRulePayload.ps1 index e88e8d559..48aa9f9de 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleTopicRulePayload.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSIoTTopicRuleTopicRulePayload.ps1 @@ -98,7 +98,7 @@ Describes a rule. $ErrorAction, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.ps1 index 4200e05a2..8045c1d50 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration.ps1 @@ -26,7 +26,7 @@ Describes whether snapshots are enabled for a Java-based Kinesis Data Analytics ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationCheckpointConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationCheckpointConfiguration.ps1 index 7db5de870..c1a7a1982 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationCheckpointConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationCheckpointConfiguration.ps1 @@ -87,7 +87,7 @@ If CheckpointConfiguration.ConfigurationType is DEFAULT, the application will us $MinPauseBetweenCheckpoints, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationParallelismConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationParallelismConfiguration.ps1 index 7740c322a..06556da47 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationParallelismConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisAnalyticsV2ApplicationParallelismConfiguration.ps1 @@ -69,7 +69,7 @@ Describes parameters for how a Java-based Amazon Kinesis Data Analytics applicat $ParallelismPerKPU, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamBufferingHints.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamBufferingHints.ps1 index fe9e63348..0cdaeb2f1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamBufferingHints.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamBufferingHints.ps1 @@ -14,15 +14,15 @@ The BufferingHints property type specifies how Amazon Kinesis Data Firehose (Kin The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination. For valid values, see the IntervalInSeconds content for the BufferingHints: https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-intervalinseconds - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER SizeInMBs The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination. For valid values, see the SizeInMBs content for the BufferingHints: https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-sizeinmbs - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell @@ -31,7 +31,7 @@ The BufferingHints property type specifies how Amazon Kinesis Data Firehose (Kin [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -42,7 +42,7 @@ The BufferingHints property type specifies how Amazon Kinesis Data Firehose (Kin } })] $IntervalInSeconds, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.ps1 index df6616492..cc085daad 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCloudWatchLoggingOptions.ps1 @@ -14,24 +14,24 @@ The CloudWatchLoggingOptions property type specifies Amazon CloudWatch Logs (Clo Indicates whether CloudWatch Logs logging is enabled. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-enabled - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER LogGroupName The name of the CloudWatch Logs log group that contains the log stream that Kinesis Data Firehose will use. Conditional. If you enable logging, you must specify this property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-loggroupname - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER LogStreamName The name of the CloudWatch Logs log stream that Kinesis Data Firehose uses to send logs about data delivery. Conditional. If you enable logging, you must specify this property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-logstreamname - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -42,7 +42,7 @@ Conditional. If you enable logging, you must specify this property. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCopyCommand.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCopyCommand.ps1 index 0282833ee..26103c704 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCopyCommand.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamCopyCommand.ps1 @@ -14,22 +14,22 @@ The CopyCommand property type configures the Amazon Redshift COPY command that A Parameters to use with the Amazon Redshift COPY command. For examples, see the CopyOptions content for the CopyCommand: https://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-copyoptions - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER DataTableColumns A comma-separated list of column names. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablecolumns - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER DataTableName The name of the target table. The table must already exist in the database. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablename - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.ps1 index 9c7b83739..1a41bea28 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDataFormatConversionConfiguration.ps1 @@ -14,29 +14,29 @@ Specifies that you want Kinesis Data Firehose to convert data from the JSON form Defaults to true. Set it to false if you want to disable format conversion while preserving the configuration details. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-enabled - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER InputFormatConfiguration Specifies the deserializer that you want Kinesis Data Firehose to use to convert the format of your data from JSON. This parameter is required if Enabled is set to true. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-inputformatconfiguration - Type: InputFormatConfiguration UpdateType: Mutable + Type: InputFormatConfiguration .PARAMETER OutputFormatConfiguration Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data to the Parquet or ORC format. This parameter is required if Enabled is set to true. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-outputformatconfiguration - Type: OutputFormatConfiguration UpdateType: Mutable + Type: OutputFormatConfiguration .PARAMETER SchemaConfiguration Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if Enabled is set to true. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-schemaconfiguration - Type: SchemaConfiguration UpdateType: Mutable + Type: SchemaConfiguration .FUNCTIONALITY Vaporshell @@ -45,9 +45,9 @@ Specifies that you want Kinesis Data Firehose to convert data from the JSON form [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -56,11 +56,11 @@ Specifies that you want Kinesis Data Firehose to convert data from the JSON form } })] $Enabled, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $InputFormatConfiguration, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $OutputFormatConfiguration, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $SchemaConfiguration ) Begin { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDeserializer.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDeserializer.ps1 index c65916a20..efa523739 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDeserializer.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamDeserializer.ps1 @@ -14,15 +14,15 @@ The deserializer you want Kinesis Data Firehose to use for converting the input The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-hivejsonserde - Type: HiveJsonSerDe UpdateType: Mutable + Type: HiveJsonSerDe .PARAMETER OpenXJsonSerDe The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-openxjsonserde - Type: OpenXJsonSerDe UpdateType: Mutable + Type: OpenXJsonSerDe .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchBufferingHints.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchBufferingHints.ps1 index 09eb61dab..698b63051 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchBufferingHints.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchBufferingHints.ps1 @@ -16,15 +16,15 @@ ElasticsearchBufferingHints is the property type for the BufferingHints property The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination. For valid values, see the IntervalInSeconds content for the BufferingHints: https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-intervalinseconds - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER SizeInMBs The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination. For valid values, see the SizeInMBs content for the BufferingHints: https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-sizeinmbs - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell @@ -33,7 +33,7 @@ ElasticsearchBufferingHints is the property type for the BufferingHints property [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -44,7 +44,7 @@ ElasticsearchBufferingHints is the property type for the BufferingHints property } })] $IntervalInSeconds, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.ps1 index 047edbcdb..eb5728128 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchDestinationConfiguration.ps1 @@ -14,78 +14,92 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-bufferinghints - Type: ElasticsearchBufferingHints UpdateType: Mutable + Type: ElasticsearchBufferingHints .PARAMETER CloudWatchLoggingOptions The Amazon CloudWatch Logs logging options for the delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions - Type: CloudWatchLoggingOptions UpdateType: Mutable + Type: CloudWatchLoggingOptions .PARAMETER DomainARN The Amazon Resource Name ARN of the Amazon ES domain that Kinesis Data Firehose delivers data to. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-domainarn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER IndexName The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexname - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER IndexRotationPeriod The frequency of Elasticsearch index rotation. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly. For more information, see Index Rotation for the Amazon ES Destination: https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation in the *Amazon Kinesis Data Firehose Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexrotationperiod - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER ProcessingConfiguration The data processing configuration for the Kinesis Data Firehose delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-processingconfiguration - Type: ProcessingConfiguration UpdateType: Mutable + Type: ProcessingConfiguration .PARAMETER RetryOptions The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-retryoptions - Type: ElasticsearchRetryOptions UpdateType: Mutable + Type: ElasticsearchRetryOptions .PARAMETER RoleARN The Amazon Resource Name ARN of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination: https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-rolearn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER S3BackupMode The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service Amazon S3. You can send Amazon S3 all documents all data or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination. For more information and valid values, see the S3BackupMode content for the ElasticsearchDestinationConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3backupmode - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER S3Configuration The S3 bucket where Kinesis Data Firehose backs up incoming data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3configuration + UpdateType: Mutable Type: S3DestinationConfiguration + + .PARAMETER ClusterEndpoint + *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-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-clusterendpoint UpdateType: Mutable + PrimitiveType: String .PARAMETER TypeName The Elasticsearch type name that Amazon ES adds to documents when indexing data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-typename - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String + + .PARAMETER VpcConfiguration + *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-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-vpcconfiguration + UpdateType: Immutable + Type: VpcConfiguration .FUNCTIONALITY Vaporshell @@ -94,11 +108,11 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $BufferingHints, [parameter(Mandatory = $false)] $CloudWatchLoggingOptions, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -120,7 +134,7 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas } })] $IndexName, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -133,7 +147,7 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas $IndexRotationPeriod, [parameter(Mandatory = $false)] $ProcessingConfiguration, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $RetryOptions, [parameter(Mandatory = $true)] [ValidateScript( { @@ -146,7 +160,7 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas } })] $RoleARN, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -159,7 +173,18 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas $S3BackupMode, [parameter(Mandatory = $true)] $S3Configuration, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ClusterEndpoint, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -169,7 +194,9 @@ The ElasticsearchDestinationConfiguration property type specifies an Amazon Elas $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $TypeName + $TypeName, + [parameter(Mandatory = $false)] + $VpcConfiguration ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchRetryOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchRetryOptions.ps1 index 517763d5b..019090f81 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchRetryOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamElasticsearchRetryOptions.ps1 @@ -14,8 +14,8 @@ The ElasticsearchRetryOptions property type configures the retry behavior for wh After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose re-attempts delivery including the first attempt. If Kinesis Data Firehose can't deliver the data within the specified time, it writes the data to the backup S3 bucket. For valid values, see the DurationInSeconds content for the ElasticsearchRetryOptions: https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchRetryOptions.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html#cfn-kinesisfirehose-deliverystream-elasticsearchretryoptions-durationinseconds - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell @@ -24,7 +24,7 @@ The ElasticsearchRetryOptions property type configures the retry behavior for wh [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamEncryptionConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamEncryptionConfiguration.ps1 index 0576c8258..d4b51d0de 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamEncryptionConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamEncryptionConfiguration.ps1 @@ -14,15 +14,15 @@ The EncryptionConfiguration property type specifies the encryption settings that The AWS Key Management Service AWS KMS encryption key that Amazon S3 uses to encrypt your data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-kmsencryptionconfig - Type: KMSEncryptionConfig UpdateType: Mutable + Type: KMSEncryptionConfig .PARAMETER NoEncryptionConfig Disables encryption. For valid values, see the NoEncryptionConfig content for the EncryptionConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_EncryptionConfiguration.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-noencryptionconfig - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.ps1 index 5428332a0..1bf7b71c3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamExtendedS3DestinationConfiguration.ps1 @@ -14,85 +14,85 @@ The ExtendedS3DestinationConfiguration property type configures an Amazon S3 des The Amazon Resource Name ARN of the Amazon S3 bucket. For constraints, see ExtendedS3DestinationConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bucketarn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER BufferingHints The buffering option. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bufferinghints - Type: BufferingHints UpdateType: Mutable + Type: BufferingHints .PARAMETER CloudWatchLoggingOptions The Amazon CloudWatch logging options for your delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-cloudwatchloggingoptions - Type: CloudWatchLoggingOptions UpdateType: Mutable + Type: CloudWatchLoggingOptions .PARAMETER CompressionFormat The compression format. If no value is specified, the default is UNCOMPRESSED. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-compressionformat - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER DataFormatConversionConfiguration The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-dataformatconversionconfiguration - Type: DataFormatConversionConfiguration UpdateType: Mutable + Type: DataFormatConversionConfiguration .PARAMETER EncryptionConfiguration The encryption configuration for the Kinesis Data Firehose delivery stream. The default value is NoEncryption. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-encryptionconfiguration - Type: EncryptionConfiguration UpdateType: Mutable + Type: EncryptionConfiguration .PARAMETER ErrorOutputPrefix A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects: https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-erroroutputprefix - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER Prefix The YYYY/MM/DD/HH time format prefix is automatically used for delivered Amazon S3 files. For more information, see ExtendedS3DestinationConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-prefix - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER ProcessingConfiguration The data processing configuration for the Kinesis Data Firehose delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-processingconfiguration - Type: ProcessingConfiguration UpdateType: Mutable + Type: ProcessingConfiguration .PARAMETER RoleARN The Amazon Resource Name ARN of the AWS credentials. For constraints, see ExtendedS3DestinationConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-rolearn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER S3BackupConfiguration The configuration for backup in Amazon S3. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupconfiguration - Type: S3DestinationConfiguration UpdateType: Mutable + Type: S3DestinationConfiguration .PARAMETER S3BackupMode The Amazon S3 backup mode. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupmode - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -112,11 +112,11 @@ The ExtendedS3DestinationConfiguration property type configures an Amazon S3 des } })] $BucketARN, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $BufferingHints, [parameter(Mandatory = $false)] $CloudWatchLoggingOptions, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamHiveJsonSerDe.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamHiveJsonSerDe.ps1 index 71a33d624..374813f58 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamHiveJsonSerDe.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamHiveJsonSerDe.ps1 @@ -14,10 +14,10 @@ The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserial Indicates how you want Kinesis Data Firehose to parse the date and timestamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see Class DateTimeFormat: https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html. You can also use the special value millis to parse timestamps in epoch milliseconds. If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf by default. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html#cfn-kinesisfirehose-deliverystream-hivejsonserde-timestampformats - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Mutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamInputFormatConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamInputFormatConfiguration.ps1 index 6ce8baf20..609f8993a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamInputFormatConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamInputFormatConfiguration.ps1 @@ -14,8 +14,8 @@ Specifies the deserializer you want to use to convert the format of the input da Specifies which deserializer to use. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe. If both are non-null, the server rejects the request. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-inputformatconfiguration-deserializer - Type: Deserializer UpdateType: Mutable + Type: Deserializer .FUNCTIONALITY Vaporshell @@ -24,7 +24,7 @@ Specifies the deserializer you want to use to convert the format of the input da [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $Deserializer ) Begin { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKMSEncryptionConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKMSEncryptionConfig.ps1 index 6e72f2862..f327a1e13 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKMSEncryptionConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKMSEncryptionConfig.ps1 @@ -14,8 +14,8 @@ The KMSEncryptionConfig property type specifies the AWS Key Management Service ( The Amazon Resource Name ARN of the AWS KMS encryption key that Amazon S3 uses to encrypt data delivered by the Kinesis Data Firehose stream. The key must belong to the same region as the destination S3 bucket. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html#cfn-kinesisfirehose-deliverystream-kmsencryptionconfig-awskmskeyarn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKinesisStreamSourceConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKinesisStreamSourceConfiguration.ps1 index b55b9a6eb..3d1675357 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKinesisStreamSourceConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamKinesisStreamSourceConfiguration.ps1 @@ -14,15 +14,15 @@ The KinesisStreamSourceConfiguration property type specifies the stream and role The ARN of the source Kinesis data stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-kinesisstreamarn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER RoleARN The ARN of the role that provides access to the source Kinesis data stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-rolearn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOpenXJsonSerDe.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOpenXJsonSerDe.ps1 index df53879c3..fe1bd81fa 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOpenXJsonSerDe.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOpenXJsonSerDe.ps1 @@ -14,25 +14,24 @@ The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which mea When set to true, which is the default, Kinesis Data Firehose converts JSON keys to lowercase before deserializing them. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-caseinsensitive - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER ColumnToJsonKeyMappings Maps column names to JSON keys that aren't identical to the column names. This is useful when the JSON contains keys that are Hive keywords. For example, timestamp is a Hive keyword. If you have a JSON key named timestamp, set this parameter to {"ts": "timestamp"} to map this key to a column named ts. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-columntojsonkeymappings - DuplicatesAllowed: False - PrimitiveItemType: String - Type: Map UpdateType: Mutable + Type: Map + PrimitiveItemType: String .PARAMETER ConvertDotsInJsonKeysToUnderscores When set to true, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is "a.b", you can define the column name to be "a_b" when using this option. The default is false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-convertdotsinjsonkeystounderscores - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .FUNCTIONALITY Vaporshell @@ -43,7 +42,7 @@ The default is false. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -57,7 +56,7 @@ The default is false. $ColumnToJsonKeyMappings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOrcSerDe.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOrcSerDe.ps1 index 486437d12..483d25ca0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOrcSerDe.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOrcSerDe.ps1 @@ -14,52 +14,52 @@ A serializer to use for converting data to the ORC format before storing it in A The Hadoop Distributed File System HDFS block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-blocksizebytes - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER BloomFilterColumns The column names for which you want Kinesis Data Firehose to create bloom filters. The default is null. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-bloomfiltercolumns - DuplicatesAllowed: False - PrimitiveItemType: String - Type: List UpdateType: Mutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .PARAMETER BloomFilterFalsePositiveProbability The Bloom filter false positive probability FPP. The lower the FPP, the bigger the Bloom filter. The default value is 0.05, the minimum is 0, and the maximum is 1. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-bloomfilterfalsepositiveprobability - PrimitiveType: Double UpdateType: Mutable + PrimitiveType: Double .PARAMETER Compression The compression code to use over data blocks. The default is SNAPPY. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-compression - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER DictionaryKeyThreshold Represents the fraction of the total number of non-null rows. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary. To always use dictionary encoding, set this threshold to 1. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-dictionarykeythreshold - PrimitiveType: Double UpdateType: Mutable + PrimitiveType: Double .PARAMETER EnablePadding Set this to true to indicate that you want stripes to be padded to the HDFS block boundaries. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-enablepadding - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER FormatVersion The version of the file to write. The possible values are V0_11 and V0_12. The default is V0_12. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-formatversion - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER PaddingTolerance A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size. The default value is 0.05, which means 5 percent of stripe size. @@ -67,22 +67,22 @@ For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the defaul Kinesis Data Firehose ignores this parameter when EnablePadding is false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-paddingtolerance - PrimitiveType: Double UpdateType: Mutable + PrimitiveType: Double .PARAMETER RowIndexStride The number of rows between index entries. The default is 10,000 and the minimum is 1,000. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-rowindexstride - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER StripeSizeBytes The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-stripesizebytes - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell @@ -106,7 +106,7 @@ Kinesis Data Firehose ignores this parameter when EnablePadding is false. $BloomFilterColumns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -128,7 +128,7 @@ Kinesis Data Firehose ignores this parameter when EnablePadding is false. $Compression, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -139,7 +139,7 @@ Kinesis Data Firehose ignores this parameter when EnablePadding is false. $DictionaryKeyThreshold, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -161,7 +161,7 @@ Kinesis Data Firehose ignores this parameter when EnablePadding is false. $FormatVersion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOutputFormatConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOutputFormatConfiguration.ps1 index 1daa424e4..3d99c8aba 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOutputFormatConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamOutputFormatConfiguration.ps1 @@ -14,8 +14,8 @@ Specifies the serializer that you want Kinesis Data Firehose to use to convert t Specifies which serializer to use. You can choose either the ORC SerDe or the Parquet SerDe. If both are non-null, the server rejects the request. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-outputformatconfiguration-serializer - Type: Serializer UpdateType: Mutable + Type: Serializer .FUNCTIONALITY Vaporshell @@ -24,7 +24,7 @@ Specifies the serializer that you want Kinesis Data Firehose to use to convert t [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $Serializer ) Begin { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamParquetSerDe.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamParquetSerDe.ps1 index b4253e9f9..93604920d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamParquetSerDe.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamParquetSerDe.ps1 @@ -14,43 +14,43 @@ A serializer to use for converting data to the Parquet format before storing it The Hadoop Distributed File System HDFS block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-blocksizebytes - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER Compression The compression code to use over data blocks. The possible values are UNCOMPRESSED, SNAPPY, and GZIP, with the default being SNAPPY. Use SNAPPY for higher decompression speed. Use GZIP if the compression ratio is more important than speed. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-compression - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER EnableDictionaryCompression Indicates whether to enable dictionary compression. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-enabledictionarycompression - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER MaxPaddingBytes The maximum amount of padding to apply. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 0. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-maxpaddingbytes - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER PageSizeBytes The Parquet page size. Column chunks are divided into pages. A page is conceptually an indivisible unit in terms of compression and encoding. The minimum value is 64 KiB and the default is 1 MiB. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-pagesizebytes - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER WriterVersion Indicates the version of row format to output. The possible values are V1 and V2. The default is V1. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-writerversion - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -83,7 +83,7 @@ A serializer to use for converting data to the Parquet format before storing it $Compression, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessingConfiguration.ps1 index 5e233d951..e0e528bbc 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessingConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessingConfiguration.ps1 @@ -14,17 +14,17 @@ The ProcessingConfiguration property configures data processing for an Amazon Ki Indicates whether data processing is enabled true or disabled false. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-enabled - PrimitiveType: Boolean UpdateType: Mutable + PrimitiveType: Boolean .PARAMETER Processors The data processors. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-processors - DuplicatesAllowed: False - ItemType: Processor - Type: List UpdateType: Mutable + Type: List + ItemType: Processor + DuplicatesAllowed: False .FUNCTIONALITY Vaporshell @@ -35,7 +35,7 @@ The ProcessingConfiguration property configures data processing for an Amazon Ki ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessor.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessor.ps1 index 735194e4b..ab13c52eb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessor.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessor.ps1 @@ -14,17 +14,17 @@ The Processor property specifies a data processor for an Amazon Kinesis Data Fir The processor parameters. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-parameters - DuplicatesAllowed: False - ItemType: ProcessorParameter - Type: List UpdateType: Mutable + Type: List + ItemType: ProcessorParameter + DuplicatesAllowed: False .PARAMETER Type The type of processor. Valid values: Lambda. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-type - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -33,7 +33,7 @@ The Processor property specifies a data processor for an Amazon Kinesis Data Fir [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.KinesisFirehose.DeliveryStream.ProcessorParameter" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessorParameter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessorParameter.ps1 index 33e25a8d1..0292e3c5f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessorParameter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamProcessorParameter.ps1 @@ -14,15 +14,15 @@ The ProcessorParameter property specifies a processor parameter in a data proces The name of the parameter. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametername - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER ParameterValue The parameter value. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametervalue - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.ps1 index c95723f06..f72d9e7fb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamRedshiftDestinationConfiguration.ps1 @@ -14,57 +14,78 @@ The RedshiftDestinationConfiguration property type specifies an Amazon Redshift The CloudWatch logging options for your delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-cloudwatchloggingoptions - Type: CloudWatchLoggingOptions UpdateType: Mutable + Type: CloudWatchLoggingOptions .PARAMETER ClusterJDBCURL The connection string that Kinesis Data Firehose uses to connect to the Amazon Redshift cluster. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-clusterjdbcurl - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER CopyCommand Configures the Amazon Redshift COPY command that Kinesis Data Firehose uses to load data into the cluster from the Amazon S3 bucket. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-copycommand - Type: CopyCommand UpdateType: Mutable + Type: CopyCommand .PARAMETER Password The password for the Amazon Redshift user that you specified in the Username property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-password - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER ProcessingConfiguration The data processing configuration for the Kinesis Data Firehose delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-processingconfiguration + UpdateType: Mutable Type: ProcessingConfiguration + + .PARAMETER RetryOptions + *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-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-retryoptions UpdateType: Mutable + Type: RedshiftRetryOptions .PARAMETER RoleARN The ARN of the AWS Identity and Access Management IAM role that grants Kinesis Data Firehose access to your Amazon S3 bucket and AWS KMS if you enable data encryption. For more information, see Grant Kinesis Data Firehose Access to an Amazon Redshift Destination: https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-rs in the *Amazon Kinesis Data Firehose Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn + UpdateType: Mutable PrimitiveType: String + + .PARAMETER S3BackupConfiguration + *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-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupconfiguration UpdateType: Mutable + Type: S3DestinationConfiguration + + .PARAMETER S3BackupMode + *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-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupmode + UpdateType: Mutable + PrimitiveType: String .PARAMETER S3Configuration The S3 bucket where Kinesis Data Firehose first delivers data. After the data is in the bucket, Kinesis Data Firehose uses the COPY command to load the data into the Amazon Redshift cluster. For the Amazon S3 bucket's compression format, don't specify SNAPPY or ZIP because the Amazon Redshift COPY command doesn't support them. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration - Type: S3DestinationConfiguration UpdateType: Mutable + Type: S3DestinationConfiguration .PARAMETER Username The Amazon Redshift user that has permission to access the Amazon Redshift cluster. This user must have INSERT privileges for copying data from the Amazon S3 bucket to the cluster. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-username - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -103,6 +124,8 @@ The RedshiftDestinationConfiguration property type specifies an Amazon Redshift $Password, [parameter(Mandatory = $false)] $ProcessingConfiguration, + [parameter(Mandatory = $false)] + $RetryOptions, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -114,6 +137,19 @@ The RedshiftDestinationConfiguration property type specifies an Amazon Redshift } })] $RoleARN, + [parameter(Mandatory = $false)] + $S3BackupConfiguration, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $S3BackupMode, [parameter(Mandatory = $true)] $S3Configuration, [parameter(Mandatory = $true)] diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamS3DestinationConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamS3DestinationConfiguration.ps1 index 80a407632..f4d07880e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamS3DestinationConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamS3DestinationConfiguration.ps1 @@ -14,57 +14,57 @@ The S3DestinationConfiguration property type specifies an Amazon Simple Storage The Amazon Resource Name ARN of the Amazon S3 bucket to send data to. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bucketarn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER BufferingHints Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon S3 bucket. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints - Type: BufferingHints UpdateType: Mutable + Type: BufferingHints .PARAMETER CloudWatchLoggingOptions The CloudWatch logging options for your delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions - Type: CloudWatchLoggingOptions UpdateType: Mutable + Type: CloudWatchLoggingOptions .PARAMETER CompressionFormat The type of compression that Kinesis Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket. For valid values, see the CompressionFormat content for the S3DestinationConfiguration: https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html data type in the *Amazon Kinesis Data Firehose API Reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER EncryptionConfiguration Configures Amazon Simple Storage Service Amazon S3 server-side encryption. Kinesis Data Firehose uses AWS Key Management Service AWS KMS to encrypt the data that it delivers to your Amazon S3 bucket. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration - Type: EncryptionConfiguration UpdateType: Mutable + Type: EncryptionConfiguration .PARAMETER ErrorOutputPrefix A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 Objects: https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-erroroutputprefix - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER Prefix A prefix that Kinesis Data Firehose adds to the files that it delivers to the Amazon S3 bucket. The prefix helps you identify the files that Kinesis Data Firehose delivered. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-prefix - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER RoleARN The ARN of an AWS Identity and Access Management IAM role that grants Kinesis Data Firehose access to your Amazon S3 bucket and AWS KMS if you enable data encryption. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination: https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3 in the *Amazon Kinesis Data Firehose Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-rolearn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -84,11 +84,11 @@ The S3DestinationConfiguration property type specifies an Amazon Simple Storage } })] $BucketARN, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $BufferingHints, [parameter(Mandatory = $false)] $CloudWatchLoggingOptions, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSchemaConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSchemaConfiguration.ps1 index fa0b00249..fc323fd64 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSchemaConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSchemaConfiguration.ps1 @@ -14,43 +14,43 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS account ID is used by default. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-catalogid - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER DatabaseName Specifies the name of the AWS Glue database that contains the schema for the output data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-databasename - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER Region If you don't specify an AWS Region, the default is the current Region. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-region - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER RoleARN The role that Kinesis Data Firehose can use to access AWS Glue. This role must be in the same account you use for Kinesis Data Firehose. Cross-account roles aren't allowed. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-rolearn - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER TableName Specifies the AWS Glue table that contains the column information that constitutes your data schema. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-tablename - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER VersionId Specifies the table version for the output data schema. If you don't specify this version ID, or if you set it to LATEST, Kinesis Data Firehose uses the most recent version. This means that any updates to the table are automatically picked up. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-versionid - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -59,7 +59,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -70,7 +70,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d } })] $CatalogId, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -81,7 +81,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d } })] $DatabaseName, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -92,7 +92,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d } })] $Region, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -103,7 +103,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d } })] $RoleARN, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -114,7 +114,7 @@ Specifies the schema to which you want Kinesis Data Firehose to configure your d } })] $TableName, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSerializer.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSerializer.ps1 index ba0b71432..6c0c51773 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSerializer.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSerializer.ps1 @@ -14,15 +14,15 @@ The serializer that you want Kinesis Data Firehose to use to convert data to the A serializer to use for converting data to the ORC format before storing it in Amazon S3. For more information, see Apache ORC: https://orc.apache.org/docs/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html#cfn-kinesisfirehose-deliverystream-serializer-orcserde - Type: OrcSerDe UpdateType: Mutable + Type: OrcSerDe .PARAMETER ParquetSerDe A serializer to use for converting data to the Parquet format before storing it in Amazon S3. For more information, see Apache Parquet: https://parquet.apache.org/documentation/latest/. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html#cfn-kinesisfirehose-deliverystream-serializer-parquetserde - Type: ParquetSerDe UpdateType: Mutable + Type: ParquetSerDe .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkDestinationConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkDestinationConfiguration.ps1 index e7e35469c..af1ff21b1 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkDestinationConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkDestinationConfiguration.ps1 @@ -14,64 +14,64 @@ The SplunkDestinationConfiguration property type specifies the configuration of The Amazon CloudWatch logging options for your delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-cloudwatchloggingoptions - Type: CloudWatchLoggingOptions UpdateType: Mutable + Type: CloudWatchLoggingOptions .PARAMETER HECAcknowledgmentTimeoutInSeconds The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecacknowledgmenttimeoutinseconds - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .PARAMETER HECEndpoint The HTTP Event Collector HEC endpoint to which Kinesis Data Firehose sends your data. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpoint - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER HECEndpointType This type can be either Raw or Event. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpointtype - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER HECToken This is a GUID that you obtain from your Splunk cluster when you create a new HEC endpoint. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hectoken - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER ProcessingConfiguration The data processing configuration. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-processingconfiguration - Type: ProcessingConfiguration UpdateType: Mutable + Type: ProcessingConfiguration .PARAMETER RetryOptions The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-retryoptions - Type: SplunkRetryOptions UpdateType: Mutable + Type: SplunkRetryOptions .PARAMETER S3BackupMode Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3backupmode - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String .PARAMETER S3Configuration The configuration for the backup Amazon S3 location. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3configuration - Type: S3DestinationConfiguration UpdateType: Mutable + Type: S3DestinationConfiguration .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkRetryOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkRetryOptions.ps1 index 75ac8f80d..dcb663c10 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkRetryOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSKinesisFirehoseDeliveryStreamSplunkRetryOptions.ps1 @@ -14,8 +14,8 @@ The SplunkRetryOptions property type specifies retry behavior in case Kinesis Da The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from Splunk after each attempt. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html#cfn-kinesisfirehose-deliverystream-splunkretryoptions-durationinseconds - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer .FUNCTIONALITY Vaporshell @@ -24,7 +24,7 @@ The SplunkRetryOptions property type specifies retry behavior in case Kinesis Da [cmdletbinding()] Param ( - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSLambdaAliasVersionWeight.ps1 b/VaporShell/Public/Resource Property Types/Add-VSLambdaAliasVersionWeight.ps1 index 15cebd28e..ca653fc05 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSLambdaAliasVersionWeight.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSLambdaAliasVersionWeight.ps1 @@ -44,7 +44,7 @@ The traffic-shifting: https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffi $FunctionVersion, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSLambdaFunctionFileSystemConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSLambdaFunctionFileSystemConfig.ps1 new file mode 100644 index 000000000..d4634c241 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSLambdaFunctionFileSystemConfig.ps1 @@ -0,0 +1,70 @@ +function Add-VSLambdaFunctionFileSystemConfig { + <# + .SYNOPSIS + Adds an AWS::Lambda::Function.FileSystemConfig resource property to the template. + + .DESCRIPTION + Adds an AWS::Lambda::Function.FileSystemConfig resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html + + .PARAMETER Arn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-arn + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER LocalMountPath + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.Lambda.Function.FileSystemConfig')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Arn, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $LocalMountPath + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Lambda.Function.FileSystemConfig' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSLogsMetricFilterMetricTransformation.ps1 b/VaporShell/Public/Resource Property Types/Add-VSLogsMetricFilterMetricTransformation.ps1 index 93dc3bd35..763dbe2f0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSLogsMetricFilterMetricTransformation.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSLogsMetricFilterMetricTransformation.ps1 @@ -47,7 +47,7 @@ MetricTransformation is a property of the AWS::Logs::MetricFilter resource that ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterCloudWatchLogs.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterCloudWatchLogs.ps1 index bc7ed780c..3e66d7b02 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterCloudWatchLogs.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterCloudWatchLogs.ps1 @@ -44,7 +44,7 @@ Details of the CloudWatch Logs destination for broker logs. $LogGroup, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterConfigurationInfo.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterConfigurationInfo.ps1 index 91d65b8de..2965bec89 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterConfigurationInfo.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterConfigurationInfo.ps1 @@ -15,14 +15,14 @@ Specifies the Amazon MSK configuration to use for the brokers. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html#cfn-msk-cluster-configurationinfo-revision PrimitiveType: Integer - UpdateType: Immutable + UpdateType: Mutable .PARAMETER Arn The Amazon Resource Name ARN of the MSK configuration to use. For example, arn:aws:kafka:us-east-1:123456789012:configuration/example-configuration-name/abcdabcd-1234-abcd-1234-abcd123e8e8e-1. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html#cfn-msk-cluster-configurationinfo-arn PrimitiveType: String - UpdateType: Immutable + UpdateType: Mutable .FUNCTIONALITY Vaporshell diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterEncryptionInTransit.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterEncryptionInTransit.ps1 index 555705ebe..5d3e6bb14 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterEncryptionInTransit.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterEncryptionInTransit.ps1 @@ -48,7 +48,7 @@ The default value is TLS_PLAINTEXT. $ClientBroker, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterFirehose.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterFirehose.ps1 index e54389f69..b4b5ddab9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterFirehose.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterFirehose.ps1 @@ -44,7 +44,7 @@ Details of the Kinesis Data Firehose delivery stream that is the destination for $DeliveryStream, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterJmxExporter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterJmxExporter.ps1 index 1bcb61a6f..3a2b9af8d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterJmxExporter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterJmxExporter.ps1 @@ -26,7 +26,7 @@ Indicates whether you want to enable or disable the JMX Exporter. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterNodeExporter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterNodeExporter.ps1 index c31ce17c2..ef8cec46f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterNodeExporter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterNodeExporter.ps1 @@ -26,7 +26,7 @@ Indicates whether you want to enable or disable the Node Exporter. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterS3.ps1 b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterS3.ps1 index 04ff38f1a..3f08f2dc6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSMSKClusterS3.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSMSKClusterS3.ps1 @@ -51,7 +51,7 @@ The details of the Amazon S3 destination for broker logs. $Bucket, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksAppEnvironmentVariable.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksAppEnvironmentVariable.ps1 index 05ee2affd..925131c0e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksAppEnvironmentVariable.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksAppEnvironmentVariable.ps1 @@ -51,7 +51,7 @@ Represents an app's environment variable. $Key, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksInstanceEbsBlockDevice.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksInstanceEbsBlockDevice.ps1 index 1ade6c756..77c29c149 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksInstanceEbsBlockDevice.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksInstanceEbsBlockDevice.ps1 @@ -55,7 +55,7 @@ If you specify the io1 volume type, you must also specify a value for the Iops a ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerAutoScalingThresholds.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerAutoScalingThresholds.ps1 index 024597d7f..8ebf03bc0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerAutoScalingThresholds.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerAutoScalingThresholds.ps1 @@ -61,7 +61,7 @@ Describes a load-based auto scaling upscaling or downscaling threshold configura ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -94,7 +94,7 @@ Describes a load-based auto scaling upscaling or downscaling threshold configura $InstanceCount, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -105,7 +105,7 @@ Describes a load-based auto scaling upscaling or downscaling threshold configura $LoadThreshold, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerLoadBasedAutoScaling.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerLoadBasedAutoScaling.ps1 index c3168ffc1..e5db88d51 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerLoadBasedAutoScaling.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerLoadBasedAutoScaling.ps1 @@ -42,7 +42,7 @@ Describes a layer's load-based auto scaling configuration. $DownScaling, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerShutdownEventConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerShutdownEventConfiguration.ps1 index 0ceb38199..247dd6e89 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerShutdownEventConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerShutdownEventConfiguration.ps1 @@ -33,7 +33,7 @@ The Shutdown event configuration. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerVolumeConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerVolumeConfiguration.ps1 index 6e7ec4bdd..5b124c883 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerVolumeConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksLayerVolumeConfiguration.ps1 @@ -74,7 +74,7 @@ If you specify io1 for the volume type, you must specify this property. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksStackChefConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksStackChefConfiguration.ps1 index f8314a2ab..320d5e140 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSOpsWorksStackChefConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSOpsWorksStackChefConfiguration.ps1 @@ -44,7 +44,7 @@ Describes the Chef configuration. $BerkshelfVersion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMessage.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMessage.ps1 index 4099d8a06..4a4bd2e5c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMessage.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMessage.ps1 @@ -195,7 +195,7 @@ This value doesn't apply to messages that are sent through the Amazon Device Mes $ImageIconUrl, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMetricDimension.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMetricDimension.ps1 index 8a3155220..a9bd37401 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMetricDimension.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignMetricDimension.ps1 @@ -44,7 +44,7 @@ Specifies metric-based criteria for including or excluding endpoints from a segm $ComparisonOperator, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignSchedule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignSchedule.ps1 index 726202459..23649d987 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignSchedule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointCampaignSchedule.ps1 @@ -120,7 +120,7 @@ If any of the preceding conditions isn't met, the endpoint will receive messages $EventFilter, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetEventDestinationEventDestination.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetEventDestinationEventDestination.ps1 index befae5229..0f26c99a0 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetEventDestinationEventDestination.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetEventDestinationEventDestination.ps1 @@ -67,7 +67,7 @@ If false, the event destination is disabled. When the event destination is disab $CloudWatchDestination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetReputationOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetReputationOptions.ps1 index 404541e36..661b8de6a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetReputationOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetReputationOptions.ps1 @@ -26,7 +26,7 @@ Enable or disable collection of reputation metrics for emails that you send usin ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetSendingOptions.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetSendingOptions.ps1 index 2c9c7de66..3bc6d6ad6 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetSendingOptions.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointEmailConfigurationSetSendingOptions.ps1 @@ -26,7 +26,7 @@ Used to enable or disable email sending for messages that use this configuration ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentCoordinates.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentCoordinates.ps1 index b5a7972c4..ecf008803 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentCoordinates.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentCoordinates.ps1 @@ -33,7 +33,7 @@ Specifies the GPS coordinates of a location. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -44,7 +44,7 @@ Specifies the GPS coordinates of a location. $Latitude, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentGPSPoint.ps1 b/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentGPSPoint.ps1 index 6b00b62c5..a106ae044 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentGPSPoint.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSPinpointSegmentGPSPoint.ps1 @@ -33,7 +33,7 @@ Specifies GPS-based criteria for including or excluding endpoints from a segment ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSQLDBStreamKinesisConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSQLDBStreamKinesisConfiguration.ps1 new file mode 100644 index 000000000..1f84313ac --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSQLDBStreamKinesisConfiguration.ps1 @@ -0,0 +1,70 @@ +function Add-VSQLDBStreamKinesisConfiguration { + <# + .SYNOPSIS + Adds an AWS::QLDB::Stream.KinesisConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::QLDB::Stream.KinesisConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html + + .PARAMETER StreamArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html#cfn-qldb-stream-kinesisconfiguration-streamarn + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER AggregationEnabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html#cfn-qldb-stream-kinesisconfiguration-aggregationenabled + UpdateType: Immutable + PrimitiveType: Boolean + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.QLDB.Stream.KinesisConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $StreamArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AggregationEnabled + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.QLDB.Stream.KinesisConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSRDSDBClusterScalingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRDSDBClusterScalingConfiguration.ps1 index 6ba3b2561..eb8a20f33 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSRDSDBClusterScalingConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSRDSDBClusterScalingConfiguration.ps1 @@ -56,7 +56,7 @@ The minimum capacity must be less than or equal to the maximum capacity. ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyAuthFormat.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyAuthFormat.ps1 new file mode 100644 index 000000000..8b02e76ad --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyAuthFormat.ps1 @@ -0,0 +1,118 @@ +function Add-VSRDSDBProxyAuthFormat { + <# + .SYNOPSIS + Adds an AWS::RDS::DBProxy.AuthFormat resource property to the template. + + .DESCRIPTION + Adds an AWS::RDS::DBProxy.AuthFormat resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html + + .PARAMETER AuthScheme + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-authscheme + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-description + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER IAMAuth + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-iamauth + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER SecretArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-secretarn + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER UserName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html#cfn-rds-dbproxy-authformat-username + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.RDS.DBProxy.AuthFormat')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AuthScheme, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $IAMAuth, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $SecretArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UserName + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.RDS.DBProxy.AuthFormat' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTagFormat.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTagFormat.ps1 new file mode 100644 index 000000000..0aed80b26 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTagFormat.ps1 @@ -0,0 +1,70 @@ +function Add-VSRDSDBProxyTagFormat { + <# + .SYNOPSIS + Adds an AWS::RDS::DBProxy.TagFormat resource property to the template. + + .DESCRIPTION + Adds an AWS::RDS::DBProxy.TagFormat resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html + + .PARAMETER Key + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html#cfn-rds-dbproxy-tagformat-key + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Value + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html#cfn-rds-dbproxy-tagformat-value + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.RDS.DBProxy.TagFormat')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Key, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Value + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.RDS.DBProxy.TagFormat' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.ps1 new file mode 100644 index 000000000..7b0f7c250 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSRDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat.ps1 @@ -0,0 +1,110 @@ +function Add-VSRDSDBProxyTargetGroupConnectionPoolConfigurationInfoFormat { + <# + .SYNOPSIS + Adds an AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat resource property to the template. + + .DESCRIPTION + Adds an AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html + + .PARAMETER MaxConnectionsPercent + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-maxconnectionspercent + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER MaxIdleConnectionsPercent + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-maxidleconnectionspercent + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER ConnectionBorrowTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-connectionborrowtimeout + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER SessionPinningFilters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-sessionpinningfilters + UpdateType: Mutable + Type: List + PrimitiveItemType: String + + .PARAMETER InitQuery + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat-initquery + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.RDS.DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MaxConnectionsPercent, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MaxIdleConnectionsPercent, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ConnectionBorrowTimeout, + [parameter(Mandatory = $false)] + $SessionPinningFilters, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $InitQuery + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.RDS.DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSRoute53HealthCheckHealthCheckConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRoute53HealthCheckHealthCheckConfig.ps1 index 0bc5c337c..552f5e733 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSRoute53HealthCheckHealthCheckConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSRoute53HealthCheckHealthCheckConfig.ps1 @@ -190,7 +190,7 @@ For more information, see How Route 53 Determines Whether an Endpoint Is Healthy $ChildHealthChecks, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -256,7 +256,7 @@ For more information, see How Route 53 Determines Whether an Endpoint Is Healthy $InsufficientDataHealthStatus, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -267,7 +267,7 @@ For more information, see How Route 53 Determines Whether an Endpoint Is Healthy $Inverted, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetAliasTarget.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetAliasTarget.ps1 index 71bf2ef60..fe8744aee 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetAliasTarget.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetAliasTarget.ps1 @@ -146,7 +146,7 @@ Specify the hosted zone ID of your hosted zone. An alias record can't reference $DNSName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupAliasTarget.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupAliasTarget.ps1 index e715f38fd..c06a0541f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupAliasTarget.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupAliasTarget.ps1 @@ -146,7 +146,7 @@ Specify the hosted zone ID of your hosted zone. An alias record can't reference $DNSName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupRecordSet.ps1 b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupRecordSet.ps1 index ce9df7f88..6a96d0324 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupRecordSet.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSRoute53RecordSetGroupRecordSet.ps1 @@ -299,7 +299,7 @@ The effect of setting Weight to 0 is different when you associate health checks $HostedZoneName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3AccessPointPublicAccessBlockConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3AccessPointPublicAccessBlockConfiguration.ps1 index 7957ab15b..c0a961101 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSS3AccessPointPublicAccessBlockConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSS3AccessPointPublicAccessBlockConfiguration.ps1 @@ -54,7 +54,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -65,7 +65,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $BlockPublicAcls, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -76,7 +76,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $IgnorePublicAcls, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -87,7 +87,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $BlockPublicPolicy, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketDeleteMarkerReplication.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketDeleteMarkerReplication.ps1 new file mode 100644 index 000000000..c3132d46a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketDeleteMarkerReplication.ps1 @@ -0,0 +1,54 @@ +function Add-VSS3BucketDeleteMarkerReplication { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.DeleteMarkerReplication resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.DeleteMarkerReplication resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html + + .PARAMETER Status + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html#cfn-s3-bucket-deletemarkerreplication-status + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.DeleteMarkerReplication')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Status + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.DeleteMarkerReplication' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketInventoryConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketInventoryConfiguration.ps1 index ae992728b..3148b8f90 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSS3BucketInventoryConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketInventoryConfiguration.ps1 @@ -72,7 +72,7 @@ Specifies the inventory configuration for an Amazon S3 bucket. For more informat $Destination, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketMetrics.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketMetrics.ps1 new file mode 100644 index 000000000..feac4f71c --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketMetrics.ps1 @@ -0,0 +1,61 @@ +function Add-VSS3BucketMetrics { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.Metrics resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.Metrics resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html + + .PARAMETER EventThreshold + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-eventthreshold + Type: ReplicationTimeValue + UpdateType: Mutable + + .PARAMETER Status + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-status + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.Metrics')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + $EventThreshold, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Status + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.Metrics' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketPublicAccessBlockConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketPublicAccessBlockConfiguration.ps1 index aafe3ca62..1ff114693 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSS3BucketPublicAccessBlockConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketPublicAccessBlockConfiguration.ps1 @@ -54,7 +54,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -65,7 +65,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $BlockPublicAcls, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -76,7 +76,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $BlockPublicPolicy, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -87,7 +87,7 @@ Enabling this setting doesn't affect previously stored bucket policies, except t $IgnorePublicAcls, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationDestination.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationDestination.ps1 index d92ceb076..c81b2b2e4 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationDestination.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationDestination.ps1 @@ -39,6 +39,20 @@ If you specify the AccessControlTranslation property, the Account property is re Type: EncryptionConfiguration UpdateType: Mutable + .PARAMETER Metrics + *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-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-metrics + Type: Metrics + UpdateType: Mutable + + .PARAMETER ReplicationTime + *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-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-replicationtime + Type: ReplicationTime + UpdateType: Mutable + .PARAMETER StorageClass The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. For valid values, see the StorageClass element of the PUT Bucket replication: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html action in the *Amazon Simple Storage Service API Reference*. @@ -81,6 +95,10 @@ For valid values, see the StorageClass element of the PUT Bucket replication: ht [parameter(Mandatory = $false)] $EncryptionConfiguration, [parameter(Mandatory = $false)] + $Metrics, + [parameter(Mandatory = $false)] + $ReplicationTime, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRule.ps1 index ccf560442..bca75fca4 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRule.ps1 @@ -10,6 +10,13 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html + .PARAMETER DeleteMarkerReplication + *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-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-deletemarkerreplication + Type: DeleteMarkerReplication + UpdateType: Mutable + .PARAMETER Destination A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control S3 RTC. @@ -17,6 +24,13 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. Type: ReplicationDestination UpdateType: Mutable + .PARAMETER Filter + *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-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-filter + Type: ReplicationRuleFilter + UpdateType: Mutable + .PARAMETER Id A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. @@ -31,6 +45,13 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. PrimitiveType: String UpdateType: Mutable + .PARAMETER Priority + *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-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-priority + PrimitiveType: Integer + UpdateType: Mutable + .PARAMETER SourceSelectionCriteria A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects. Currently, Amazon S3 supports only the filter that you can specify for objects created with server-side encryption using a customer master key CMK stored in AWS Key Management Service SSE-KMS. @@ -52,9 +73,13 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. [cmdletbinding()] Param ( + [parameter(Mandatory = $false)] + $DeleteMarkerReplication, [parameter(Mandatory = $true)] $Destination, [parameter(Mandatory = $false)] + $Filter, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -65,7 +90,7 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. } })] $Id, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -77,6 +102,17 @@ Specifies which Amazon S3 objects to replicate and where to store the replicas. })] $Prefix, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Priority, + [parameter(Mandatory = $false)] $SourceSelectionCriteria, [parameter(Mandatory = $true)] [ValidateScript( { diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleAndOperator.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleAndOperator.ps1 new file mode 100644 index 000000000..7741fc800 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleAndOperator.ps1 @@ -0,0 +1,72 @@ +function Add-VSS3BucketReplicationRuleAndOperator { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.ReplicationRuleAndOperator resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.ReplicationRuleAndOperator resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html + + .PARAMETER Prefix + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-prefix + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER TagFilters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-tagfilters + DuplicatesAllowed: False + ItemType: TagFilter + Type: List + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.ReplicationRuleAndOperator')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Prefix, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.S3.Bucket.TagFilter" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TagFilters + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.ReplicationRuleAndOperator' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleFilter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleFilter.ps1 new file mode 100644 index 000000000..7054a97fd --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationRuleFilter.ps1 @@ -0,0 +1,68 @@ +function Add-VSS3BucketReplicationRuleFilter { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.ReplicationRuleFilter resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.ReplicationRuleFilter resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html + + .PARAMETER And + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-and + Type: ReplicationRuleAndOperator + UpdateType: Mutable + + .PARAMETER Prefix + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-prefix + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER TagFilter + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-tagfilter + Type: TagFilter + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.ReplicationRuleFilter')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $And, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Prefix, + [parameter(Mandatory = $false)] + $TagFilter + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.ReplicationRuleFilter' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTime.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTime.ps1 new file mode 100644 index 000000000..57eab574c --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTime.ps1 @@ -0,0 +1,61 @@ +function Add-VSS3BucketReplicationTime { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.ReplicationTime resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.ReplicationTime resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html + + .PARAMETER Status + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-status + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER Time + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-time + Type: ReplicationTimeValue + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.ReplicationTime')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Status, + [parameter(Mandatory = $true)] + $Time + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.ReplicationTime' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTimeValue.ps1 b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTimeValue.ps1 new file mode 100644 index 000000000..1a3bc0504 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSS3BucketReplicationTimeValue.ps1 @@ -0,0 +1,54 @@ +function Add-VSS3BucketReplicationTimeValue { + <# + .SYNOPSIS + Adds an AWS::S3::Bucket.ReplicationTimeValue resource property to the template. + + .DESCRIPTION + Adds an AWS::S3::Bucket.ReplicationTimeValue resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html + + .PARAMETER Minutes + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html#cfn-s3-bucket-replicationtimevalue-minutes + PrimitiveType: Integer + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.S3.Bucket.ReplicationTimeValue')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Minutes + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.S3.Bucket.ReplicationTimeValue' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSESConfigurationSetEventDestinationEventDestination.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSESConfigurationSetEventDestinationEventDestination.ps1 index 0f0dbe36c..be9078c09 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSESConfigurationSetEventDestinationEventDestination.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSESConfigurationSetEventDestinationEventDestination.ps1 @@ -63,7 +63,7 @@ You can't specify Amazon SNS event destinations in CloudFormation templates. $CloudWatchDestination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSSESReceiptRuleRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSESReceiptRuleRule.ps1 index b4b184443..ce71100bb 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSESReceiptRuleRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSESReceiptRuleRule.ps1 @@ -70,7 +70,7 @@ For information about setting up receipt rules, see the Amazon SES Developer Gui ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -94,7 +94,7 @@ For information about setting up receipt rules, see the Amazon SES Developer Gui $Actions, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSSSMPatchBaselineRule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSSMPatchBaselineRule.ps1 index f31ae3075..f0c361419 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSSMPatchBaselineRule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSSMPatchBaselineRule.ps1 @@ -59,7 +59,7 @@ You must specify a value for ApproveAfterDays. $ApproveUntilDate, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSSSMResourceDataSyncSyncSource.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSSMResourceDataSyncSyncSource.ps1 index f8e466099..6d14f95ab 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSSMResourceDataSyncSyncSource.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSSMResourceDataSyncSyncSource.ps1 @@ -61,7 +61,7 @@ Information about the source of the data included in the resource data sync. $AwsOrganizationsSource, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureContentTypeHeader.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureContentTypeHeader.ps1 new file mode 100644 index 000000000..de75a06b6 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureContentTypeHeader.ps1 @@ -0,0 +1,54 @@ +function Add-VSSageMakerEndpointConfigCaptureContentTypeHeader { + <# + .SYNOPSIS + Adds an AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader resource property to the template. + + .DESCRIPTION + Adds an AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html + + .PARAMETER JsonContentTypes + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html#cfn-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader-jsoncontenttypes + UpdateType: Immutable + + .PARAMETER CsvContentTypes + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html#cfn-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader-csvcontenttypes + UpdateType: Immutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.SageMaker.EndpointConfig.CaptureContentTypeHeader')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $false)] + $JsonContentTypes, + [parameter(Mandatory = $false)] + $CsvContentTypes + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.SageMaker.EndpointConfig.CaptureContentTypeHeader' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureOption.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureOption.ps1 new file mode 100644 index 000000000..2d35dab66 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigCaptureOption.ps1 @@ -0,0 +1,54 @@ +function Add-VSSageMakerEndpointConfigCaptureOption { + <# + .SYNOPSIS + Adds an AWS::SageMaker::EndpointConfig.CaptureOption resource property to the template. + + .DESCRIPTION + Adds an AWS::SageMaker::EndpointConfig.CaptureOption resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-captureoption.html + + .PARAMETER CaptureMode + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-captureoption.html#cfn-sagemaker-endpointconfig-captureoption-capturemode + PrimitiveType: String + UpdateType: Immutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.SageMaker.EndpointConfig.CaptureOption')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CaptureMode + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.SageMaker.EndpointConfig.CaptureOption' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigDataCaptureConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigDataCaptureConfig.ps1 new file mode 100644 index 000000000..ee6f36998 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigDataCaptureConfig.ps1 @@ -0,0 +1,126 @@ +function Add-VSSageMakerEndpointConfigDataCaptureConfig { + <# + .SYNOPSIS + Adds an AWS::SageMaker::EndpointConfig.DataCaptureConfig resource property to the template. + + .DESCRIPTION + Adds an AWS::SageMaker::EndpointConfig.DataCaptureConfig resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html + + .PARAMETER CaptureOptions + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-captureoptions + ItemType: CaptureOption + UpdateType: Immutable + + .PARAMETER KmsKeyId + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-kmskeyid + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER DestinationS3Uri + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-destinations3uri + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER InitialSamplingPercentage + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-initialsamplingpercentage + PrimitiveType: Integer + UpdateType: Immutable + + .PARAMETER CaptureContentTypeHeader + Type: CaptureContentTypeHeader + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader + UpdateType: Immutable + + .PARAMETER EnableCapture + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig-enablecapture + PrimitiveType: Boolean + UpdateType: Immutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.SageMaker.EndpointConfig.DataCaptureConfig')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.SageMaker.EndpointConfig.CaptureOption" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CaptureOptions, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $KmsKeyId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DestinationS3Uri, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $InitialSamplingPercentage, + [parameter(Mandatory = $false)] + $CaptureContentTypeHeader, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnableCapture + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.SageMaker.EndpointConfig.DataCaptureConfig' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigProductionVariant.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigProductionVariant.ps1 index ac9b6a100..7e2ee224e 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigProductionVariant.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSageMakerEndpointConfigProductionVariant.ps1 @@ -116,7 +116,7 @@ Specifies a model that you want to host and the resources to deploy for hosting $AcceleratorType, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSSageMakerModelContainerDefinition.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSageMakerModelContainerDefinition.ps1 index cc6378863..df6e6be11 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSageMakerModelContainerDefinition.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSageMakerModelContainerDefinition.ps1 @@ -18,6 +18,13 @@ When a ContainerDefinition is part of an inference pipeline, the value of the pa PrimitiveType: String UpdateType: Immutable + .PARAMETER ModelPackageName + *Update requires*: Replacement: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-modelpackagename + PrimitiveType: String + UpdateType: Immutable + .PARAMETER Mode Whether the container hosts a single model or multiple models. @@ -67,6 +74,17 @@ If you use a built-in algorithm to create a model, Amazon SageMaker requires tha })] $ContainerHostname, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ModelPackageName, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -99,7 +117,7 @@ If you use a built-in algorithm to create a model, Amazon SageMaker requires tha } })] $ModelDataUrl, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerRotationScheduleHostedRotationLambda.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerRotationScheduleHostedRotationLambda.ps1 new file mode 100644 index 000000000..0ae3d3a64 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerRotationScheduleHostedRotationLambda.ps1 @@ -0,0 +1,150 @@ +function Add-VSSecretsManagerRotationScheduleHostedRotationLambda { + <# + .SYNOPSIS + Adds an AWS::SecretsManager::RotationSchedule.HostedRotationLambda resource property to the template. + + .DESCRIPTION + Adds an AWS::SecretsManager::RotationSchedule.HostedRotationLambda resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html + + .PARAMETER RotationType + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationtype + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER RotationLambdaName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationlambdaname + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER KmsKeyArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-kmskeyarn + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER MasterSecretArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-mastersecretarn + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER VpcSecurityGroupIds + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-vpcsecuritygroupids + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER MasterSecretKmsKeyArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-mastersecretkmskeyarn + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER VpcSubnetIds + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-vpcsubnetids + PrimitiveType: String + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.SecretsManager.RotationSchedule.HostedRotationLambda')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RotationType, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RotationLambdaName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $KmsKeyArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MasterSecretArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $VpcSecurityGroupIds, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MasterSecretKmsKeyArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $VpcSubnetIds + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.SecretsManager.RotationSchedule.HostedRotationLambda' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerSecretGenerateSecretString.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerSecretGenerateSecretString.ps1 index ff792741b..a30dbd98d 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerSecretGenerateSecretString.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSecretsManagerSecretGenerateSecretString.ps1 @@ -97,7 +97,7 @@ The following are the punctuation characters that *can* be included in the gener ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -108,7 +108,7 @@ The following are the punctuation characters that *can* be included in the gener $ExcludeUppercase, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -119,7 +119,7 @@ The following are the punctuation characters that *can* be included in the gener $RequireEachIncludedType, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -163,7 +163,7 @@ The following are the punctuation characters that *can* be included in the gener $PasswordLength, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -174,7 +174,7 @@ The following are the punctuation characters that *can* be included in the gener $ExcludePunctuation, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -196,7 +196,7 @@ The following are the punctuation characters that *can* be included in the gener $SecretStringTemplate, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProductProvisioningArtifactProperties.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProductProvisioningArtifactProperties.ps1 index 12d8adeb4..28455d424 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProductProvisioningArtifactProperties.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProductProvisioningArtifactProperties.ps1 @@ -59,7 +59,7 @@ Information about a provisioning artifact (also known as a version for a product $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningParameter.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningParameter.ps1 index 4f66d1420..aa3f7301b 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningParameter.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningParameter.ps1 @@ -10,19 +10,19 @@ Information about a parameter used to provision a product. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html - .PARAMETER Value - The parameter value. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameter-value - PrimitiveType: String - UpdateType: Mutable - .PARAMETER Key The parameter key. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameter-key + UpdateType: Mutable PrimitiveType: String + + .PARAMETER Value + The parameter value. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameter-value UpdateType: Mutable + PrimitiveType: String .FUNCTIONALITY Vaporshell @@ -31,7 +31,7 @@ Information about a parameter used to provision a product. [cmdletbinding()] Param ( - [parameter(Mandatory = $false)] + [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -41,8 +41,8 @@ Information about a parameter used to provision a product. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Value, - [parameter(Mandatory = $false)] + $Key, + [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -52,7 +52,7 @@ Information about a parameter used to provision a product. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Key + $Value ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.ps1 index 9981f47a4..ec388ceb8 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningPreferences.ps1 @@ -16,10 +16,11 @@ Applicable only to a CFN_STACKSET provisioned product type. The AWS accounts specified should be within the list of accounts in the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation. If no values are specified, the default value is all accounts from the STACKSET constraint. - PrimitiveItemType: String - Type: List Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetaccounts UpdateType: Mutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .PARAMETER StackSetFailureToleranceCount The number of accounts, per region, for which this operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. @@ -28,19 +29,18 @@ Conditional: You must specify either StackSetFailureToleranceCount or StackSetFa The default value is 0 if no value is specified. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetfailuretolerancecount - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer - .PARAMETER StackSetMaxConcurrencyPercentage - The maximum percentage of accounts in which to perform this operation at one time. -When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead. -Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. + .PARAMETER StackSetFailureTolerancePercentage + The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. +When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. Applicable only to a CFN_STACKSET provisioned product type. -Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both. +Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetmaxconcurrencypercentage - PrimitiveType: Integer + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetfailuretolerancepercentage UpdateType: Mutable + PrimitiveType: Integer .PARAMETER StackSetMaxConcurrencyCount The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of StackSetFailureToleranceCount. StackSetMaxConcurrentCount is at most one more than the StackSetFailureToleranceCount. @@ -49,19 +49,19 @@ Applicable only to a CFN_STACKSET provisioned product type. Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetmaxconcurrencycount - PrimitiveType: Integer UpdateType: Mutable + PrimitiveType: Integer - .PARAMETER StackSetRegions - One or more AWS Regions where the provisioned product will be available. + .PARAMETER StackSetMaxConcurrencyPercentage + The maximum percentage of accounts in which to perform this operation at one time. +When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead. +Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Applicable only to a CFN_STACKSET provisioned product type. -The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the DescribeProvisioningParameters operation. -If no values are specified, the default value is all regions from the STACKSET constraint. +Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both. - PrimitiveItemType: String - Type: List - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetregions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetmaxconcurrencypercentage UpdateType: Mutable + PrimitiveType: Integer .PARAMETER StackSetOperationType Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product. The default value is UPDATE if nothing is specified. @@ -74,18 +74,20 @@ DELETE Deletes a stack instance in the stack set represented by the provisioned product. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetoperationtype - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String - .PARAMETER StackSetFailureTolerancePercentage - The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. -When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. + .PARAMETER StackSetRegions + One or more AWS Regions where the provisioned product will be available. Applicable only to a CFN_STACKSET provisioned product type. -Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both. +The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the DescribeProvisioningParameters operation. +If no values are specified, the default value is all regions from the STACKSET constraint. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetfailuretolerancepercentage - PrimitiveType: Integer + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences-stacksetregions UpdateType: Mutable + Type: List + PrimitiveItemType: String + DuplicatesAllowed: False .FUNCTIONALITY Vaporshell @@ -117,7 +119,7 @@ Conditional: You must specify either StackSetFailureToleranceCount or StackSetFa $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $StackSetMaxConcurrencyPercentage, + $StackSetFailureTolerancePercentage, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" @@ -130,10 +132,8 @@ Conditional: You must specify either StackSetFailureToleranceCount or StackSetFa })] $StackSetMaxConcurrencyCount, [parameter(Mandatory = $false)] - $StackSetRegions, - [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -141,10 +141,10 @@ Conditional: You must specify either StackSetFailureToleranceCount or StackSetFa $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $StackSetOperationType, + $StackSetMaxConcurrencyPercentage, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Int32","Vaporshell.Function" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -152,7 +152,9 @@ Conditional: You must specify either StackSetFailureToleranceCount or StackSetFa $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $StackSetFailureTolerancePercentage + $StackSetOperationType, + [parameter(Mandatory = $false)] + $StackSetRegions ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceDnsRecord.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceDnsRecord.ps1 index 12d966062..f26d06d19 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceDnsRecord.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceDnsRecord.ps1 @@ -75,7 +75,7 @@ Alias records don't include a TTL because Route 53 uses the TTL for the AWS reso $Type, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckConfig.ps1 index 8bcaf505b..a58b5df17 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckConfig.ps1 @@ -108,7 +108,7 @@ If you specify TCP for Type, you must *not* specify a value for ResourcePath. $ResourcePath, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckCustomConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckCustomConfig.ps1 index cb932f779..5e9e1c5df 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckCustomConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSServiceDiscoveryServiceHealthCheckCustomConfig.ps1 @@ -59,7 +59,7 @@ Sending a second or subsequent UpdateInstanceCustomHealthStatus request with the ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineLoggingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineLoggingConfiguration.ps1 index 4c6b03aa1..228833e79 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineLoggingConfiguration.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineLoggingConfiguration.ps1 @@ -45,7 +45,7 @@ By default, the level is set to OFF. For more information see Log Levels: https: ( [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineTracingConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineTracingConfiguration.ps1 new file mode 100644 index 000000000..481d2819a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSStepFunctionsStateMachineTracingConfiguration.ps1 @@ -0,0 +1,54 @@ +function Add-VSStepFunctionsStateMachineTracingConfiguration { + <# + .SYNOPSIS + Adds an AWS::StepFunctions::StateMachine.TracingConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::StepFunctions::StateMachine.TracingConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html + + .PARAMETER Enabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html#cfn-stepfunctions-statemachine-tracingconfiguration-enabled + PrimitiveType: Boolean + UpdateType: Mutable + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.StepFunctions.StateMachine.TracingConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Enabled + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.StepFunctions.StateMachine.TracingConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanaryRunConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanaryRunConfig.ps1 index a32aa68ae..7fb661724 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanaryRunConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanaryRunConfig.ps1 @@ -17,6 +17,13 @@ A structure that contains input information for a canary run. UpdateType: Mutable PrimitiveType: Integer + .PARAMETER MemoryInMB + *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-synthetics-canary-runconfig.html#cfn-synthetics-canary-runconfig-memoryinmb + UpdateType: Mutable + PrimitiveType: Integer + .FUNCTIONALITY Vaporshell #> @@ -34,7 +41,18 @@ A structure that contains input information for a canary run. $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $TimeoutInSeconds + $TimeoutInSeconds, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MemoryInMB ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanarySchedule.ps1 b/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanarySchedule.ps1 index d47f6a5c1..aec6ae71f 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanarySchedule.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSSyntheticsCanarySchedule.ps1 @@ -44,7 +44,7 @@ Specifying rate0 minute or rate0 hour is a special value that causes the canary } })] $Expression, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRateBasedRulePredicate.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRateBasedRulePredicate.ps1 index 4e4ee418c..5ff730005 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRateBasedRulePredicate.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRateBasedRulePredicate.ps1 @@ -63,7 +63,7 @@ Set Negated to True if you want AWS WAF to allow or block a request based on the $DataId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRulePredicate.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRulePredicate.ps1 index daa9c4c23..678704542 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRulePredicate.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFRegionalRulePredicate.ps1 @@ -63,7 +63,7 @@ Set Negated to True if you want AWS WAF to allow or block a request based on the $DataId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFRulePredicate.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFRulePredicate.ps1 index 7e23c8845..4d6a467f9 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFRulePredicate.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFRulePredicate.ps1 @@ -52,7 +52,7 @@ Set Negated to True if you want AWS WAF to allow or block a request based on the $DataId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupForwardedIPConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupForwardedIPConfiguration.ps1 new file mode 100644 index 000000000..d008f3531 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupForwardedIPConfiguration.ps1 @@ -0,0 +1,70 @@ +function Add-VSWAFv2RuleGroupForwardedIPConfiguration { + <# + .SYNOPSIS + Adds an AWS::WAFv2::RuleGroup.ForwardedIPConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::WAFv2::RuleGroup.ForwardedIPConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html + + .PARAMETER HeaderName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html#cfn-wafv2-rulegroup-forwardedipconfiguration-headername + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER FallbackBehavior + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html#cfn-wafv2-rulegroup-forwardedipconfiguration-fallbackbehavior + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.WAFv2.RuleGroup.ForwardedIPConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HeaderName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FallbackBehavior + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.WAFv2.RuleGroup.ForwardedIPConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupGeoMatchStatement.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupGeoMatchStatement.ps1 index df6050776..a4ba4e426 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupGeoMatchStatement.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupGeoMatchStatement.ps1 @@ -22,6 +22,13 @@ A rule statement used to identify web requests based on country of origin. Type: List PrimitiveItemType: String + .PARAMETER ForwardedIPConfig + *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-wafv2-rulegroup-geomatchstatement.html#cfn-wafv2-rulegroup-geomatchstatement-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -30,7 +37,9 @@ A rule statement used to identify web requests based on country of origin. Param ( [parameter(Mandatory = $false)] - $CountryCodes + $CountryCodes, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetForwardedIPConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetForwardedIPConfiguration.ps1 new file mode 100644 index 000000000..755ff99dd --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetForwardedIPConfiguration.ps1 @@ -0,0 +1,86 @@ +function Add-VSWAFv2RuleGroupIPSetForwardedIPConfiguration { + <# + .SYNOPSIS + Adds an AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html + + .PARAMETER HeaderName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-headername + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER FallbackBehavior + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-fallbackbehavior + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Position + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html#cfn-wafv2-rulegroup-ipsetforwardedipconfiguration-position + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.WAFv2.RuleGroup.IPSetForwardedIPConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HeaderName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FallbackBehavior, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Position + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.WAFv2.RuleGroup.IPSetForwardedIPConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetReferenceStatement.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetReferenceStatement.ps1 index 0ed509038..8513ac6bf 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetReferenceStatement.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupIPSetReferenceStatement.ps1 @@ -23,6 +23,13 @@ Each IP set rule statement references an IP set. You create and maintain the set UpdateType: Mutable PrimitiveType: String + .PARAMETER IPSetForwardedIPConfig + *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-wafv2-rulegroup-ipsetreferencestatement.html#cfn-wafv2-rulegroup-ipsetreferencestatement-ipsetforwardedipconfig + UpdateType: Mutable + Type: IPSetForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -40,7 +47,9 @@ Each IP set rule statement references an IP set. You create and maintain the set $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Arn + $Arn, + [parameter(Mandatory = $false)] + $IPSetForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementOne.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementOne.ps1 index 1c1d3e39d..28df1643a 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementOne.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementOne.ps1 @@ -35,6 +35,13 @@ You can optionally nest another statement inside the rate-based statement, to na UpdateType: Mutable Type: StatementTwo + .PARAMETER ForwardedIPConfig + *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-wafv2-rulegroup-ratebasedstatementone.html#cfn-wafv2-rulegroup-ratebasedstatementone-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -65,7 +72,9 @@ You can optionally nest another statement inside the rate-based statement, to na })] $AggregateKeyType, [parameter(Mandatory = $false)] - $ScopeDownStatement + $ScopeDownStatement, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementTwo.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementTwo.ps1 index c4bac6d10..d088d4b72 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementTwo.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupRateBasedStatementTwo.ps1 @@ -35,6 +35,13 @@ You can optionally nest another statement inside the rate-based statement, to na UpdateType: Mutable Type: StatementThree + .PARAMETER ForwardedIPConfig + *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-wafv2-rulegroup-ratebasedstatementtwo.html#cfn-wafv2-rulegroup-ratebasedstatementtwo-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -65,7 +72,9 @@ You can optionally nest another statement inside the rate-based statement, to na })] $AggregateKeyType, [parameter(Mandatory = $false)] - $ScopeDownStatement + $ScopeDownStatement, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupVisibilityConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupVisibilityConfig.ps1 index 3201af716..8dbcd23f3 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupVisibilityConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2RuleGroupVisibilityConfig.ps1 @@ -44,7 +44,7 @@ Defines and enables Amazon CloudWatch metrics and web request sample collection. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -55,7 +55,7 @@ Defines and enables Amazon CloudWatch metrics and web request sample collection. $SampledRequestsEnabled, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLForwardedIPConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLForwardedIPConfiguration.ps1 new file mode 100644 index 000000000..53acb0d19 --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLForwardedIPConfiguration.ps1 @@ -0,0 +1,70 @@ +function Add-VSWAFv2WebACLForwardedIPConfiguration { + <# + .SYNOPSIS + Adds an AWS::WAFv2::WebACL.ForwardedIPConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::WAFv2::WebACL.ForwardedIPConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html + + .PARAMETER HeaderName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html#cfn-wafv2-webacl-forwardedipconfiguration-headername + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER FallbackBehavior + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html#cfn-wafv2-webacl-forwardedipconfiguration-fallbackbehavior + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.WAFv2.WebACL.ForwardedIPConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HeaderName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FallbackBehavior + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.WAFv2.WebACL.ForwardedIPConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLGeoMatchStatement.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLGeoMatchStatement.ps1 index 57a4fb452..6f6878b89 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLGeoMatchStatement.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLGeoMatchStatement.ps1 @@ -22,6 +22,13 @@ A rule statement used to identify web requests based on country of origin. Type: List PrimitiveItemType: String + .PARAMETER ForwardedIPConfig + *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-wafv2-webacl-geomatchstatement.html#cfn-wafv2-webacl-geomatchstatement-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -30,7 +37,9 @@ A rule statement used to identify web requests based on country of origin. Param ( [parameter(Mandatory = $false)] - $CountryCodes + $CountryCodes, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetForwardedIPConfiguration.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetForwardedIPConfiguration.ps1 new file mode 100644 index 000000000..b763d8a9a --- /dev/null +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetForwardedIPConfiguration.ps1 @@ -0,0 +1,86 @@ +function Add-VSWAFv2WebACLIPSetForwardedIPConfiguration { + <# + .SYNOPSIS + Adds an AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration resource property to the template. + + .DESCRIPTION + Adds an AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration resource property to the template. + + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html + + .PARAMETER HeaderName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html#cfn-wafv2-webacl-ipsetforwardedipconfiguration-headername + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER FallbackBehavior + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html#cfn-wafv2-webacl-ipsetforwardedipconfiguration-fallbackbehavior + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Position + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html#cfn-wafv2-webacl-ipsetforwardedipconfiguration-position + UpdateType: Mutable + PrimitiveType: String + + .FUNCTIONALITY + Vaporshell + #> + [OutputType('Vaporshell.Resource.WAFv2.WebACL.IPSetForwardedIPConfiguration')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HeaderName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FallbackBehavior, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Position + ) + Begin { + $obj = [PSCustomObject]@{} + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + Default { + $obj | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters.$key + } + } + } + } + End { + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.WAFv2.WebACL.IPSetForwardedIPConfiguration' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$($obj | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetReferenceStatement.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetReferenceStatement.ps1 index 38ca6bb0f..c3d8a4d4c 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetReferenceStatement.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLIPSetReferenceStatement.ps1 @@ -23,6 +23,13 @@ Each IP set rule statement references an IP set. You create and maintain the set UpdateType: Mutable PrimitiveType: String + .PARAMETER IPSetForwardedIPConfig + *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-wafv2-webacl-ipsetreferencestatement.html#cfn-wafv2-webacl-ipsetreferencestatement-ipsetforwardedipconfig + UpdateType: Mutable + Type: IPSetForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -40,7 +47,9 @@ Each IP set rule statement references an IP set. You create and maintain the set $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Arn + $Arn, + [parameter(Mandatory = $false)] + $IPSetForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementOne.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementOne.ps1 index 3ee53e11f..54aff4cf4 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementOne.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementOne.ps1 @@ -35,6 +35,13 @@ You can optionally nest another statement inside the rate-based statement, to na UpdateType: Mutable Type: StatementTwo + .PARAMETER ForwardedIPConfig + *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-wafv2-webacl-ratebasedstatementone.html#cfn-wafv2-webacl-ratebasedstatementone-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -65,7 +72,9 @@ You can optionally nest another statement inside the rate-based statement, to na })] $AggregateKeyType, [parameter(Mandatory = $false)] - $ScopeDownStatement + $ScopeDownStatement, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementTwo.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementTwo.ps1 index a42fb91c5..6cda34058 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementTwo.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLRateBasedStatementTwo.ps1 @@ -31,6 +31,13 @@ Rules statement. UpdateType: Mutable Type: StatementThree + .PARAMETER ForwardedIPConfig + *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-wafv2-webacl-ratebasedstatementtwo.html#cfn-wafv2-webacl-ratebasedstatementtwo-forwardedipconfig + UpdateType: Mutable + Type: ForwardedIPConfiguration + .FUNCTIONALITY Vaporshell #> @@ -61,7 +68,9 @@ Rules statement. })] $AggregateKeyType, [parameter(Mandatory = $false)] - $ScopeDownStatement + $ScopeDownStatement, + [parameter(Mandatory = $false)] + $ForwardedIPConfig ) Begin { $obj = [PSCustomObject]@{} diff --git a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLVisibilityConfig.ps1 b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLVisibilityConfig.ps1 index 4e22214c8..032e53574 100644 --- a/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLVisibilityConfig.ps1 +++ b/VaporShell/Public/Resource Property Types/Add-VSWAFv2WebACLVisibilityConfig.ps1 @@ -44,7 +44,7 @@ Defines and enables Amazon CloudWatch metrics and web request sample collection. ( [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -55,7 +55,7 @@ Defines and enables Amazon CloudWatch metrics and web request sample collection. $SampledRequestsEnabled, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAmazonMQBroker.ps1 b/VaporShell/Public/Resource Types/New-VSAmazonMQBroker.ps1 index dd355d10c..b77fb571b 100644 --- a/VaporShell/Public/Resource Types/New-VSAmazonMQBroker.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAmazonMQBroker.ps1 @@ -71,6 +71,11 @@ This permission is required to attach the ENI to the broker instance. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-configuration UpdateType: Mutable + .PARAMETER AuthenticationStrategy + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-authenticationstrategy + PrimitiveType: String + UpdateType: Immutable + .PARAMETER MaintenanceWindowStartTime The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker.. @@ -78,6 +83,11 @@ This permission is required to attach the ENI to the broker instance. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-maintenancewindowstarttime UpdateType: Immutable + .PARAMETER LdapMetadata + Type: LdapMetadata + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapmetadata + UpdateType: Mutable + .PARAMETER HostInstanceType The broker's instance type. @@ -122,6 +132,11 @@ This permission is required to attach the ENI to the broker instance. PrimitiveType: String UpdateType: Immutable + .PARAMETER LdapServerMetadata + Type: LdapServerMetadata + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapservermetadata + UpdateType: Mutable + .PARAMETER DeploymentMode The deployment mode of the broker. Available values: + SINGLE_INSTANCE @@ -249,7 +264,20 @@ This permission is required to attach the ENI to the broker instance. [parameter(Mandatory = $false)] $Configuration, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AuthenticationStrategy, + [parameter(Mandatory = $false)] $MaintenanceWindowStartTime, + [parameter(Mandatory = $false)] + $LdapMetadata, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -263,7 +291,7 @@ This permission is required to attach the ENI to the broker instance. $HostInstanceType, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -298,6 +326,8 @@ This permission is required to attach the ENI to the broker instance. } })] $BrokerName, + [parameter(Mandatory = $false)] + $LdapServerMetadata, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -322,7 +352,7 @@ This permission is required to attach the ENI to the broker instance. $EngineType, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAmplifyApp.ps1 b/VaporShell/Public/Resource Types/New-VSAmplifyApp.ps1 index f077bda75..0cd56ceb1 100644 --- a/VaporShell/Public/Resource Types/New-VSAmplifyApp.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAmplifyApp.ps1 @@ -26,17 +26,31 @@ function New-VSAmplifyApp { PrimitiveType: String UpdateType: Mutable - .PARAMETER Repository - Repository for an Amplify App + .PARAMETER Description + Description for an Amplify App - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-repository + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-description PrimitiveType: String UpdateType: Mutable - .PARAMETER Description - Description for an Amplify App + .PARAMETER EnableBranchAutoDeletion + Default domain for the Amplify App. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-enablebranchautodeletion + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER Name + Name for the Amplify App + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-name + PrimitiveType: String + UpdateType: Mutable + + .PARAMETER Repository + Repository for an Amplify App + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-repository PrimitiveType: String UpdateType: Mutable @@ -85,13 +99,6 @@ function New-VSAmplifyApp { ItemType: Tag UpdateType: Mutable - .PARAMETER Name - Name for the Amplify App - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-name - PrimitiveType: String - UpdateType: Mutable - .PARAMETER IAMServiceRole IAM service role ARN for the Amplify App. @@ -184,7 +191,29 @@ function New-VSAmplifyApp { $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Repository, + $Description, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnableBranchAutoDeletion, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Name, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -195,7 +224,7 @@ function New-VSAmplifyApp { $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Description, + $Repository, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.Amplify.App.EnvironmentVariable" @@ -245,17 +274,6 @@ function New-VSAmplifyApp { [VaporShell.Core.TransformTag()] [parameter(Mandatory = $false)] $Tags, - [parameter(Mandatory = $true)] - [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" - if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { - $true - } - else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) - } - })] - $Name, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" diff --git a/VaporShell/Public/Resource Types/New-VSAmplifyBranch.ps1 b/VaporShell/Public/Resource Types/New-VSAmplifyBranch.ps1 index 53d4f17d3..54fb54aa1 100644 --- a/VaporShell/Public/Resource Types/New-VSAmplifyBranch.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAmplifyBranch.ps1 @@ -204,7 +204,7 @@ For more information, see Web Previews: https://docs.aws.amazon.com/amplify/late $PullRequestEnvironmentName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -215,7 +215,7 @@ For more information, see Web Previews: https://docs.aws.amazon.com/amplify/late $EnablePullRequestPreview, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAmplifyDomain.ps1 b/VaporShell/Public/Resource Types/New-VSAmplifyDomain.ps1 index 18b26b624..1a99f83b4 100644 --- a/VaporShell/Public/Resource Types/New-VSAmplifyDomain.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAmplifyDomain.ps1 @@ -27,6 +27,13 @@ function New-VSAmplifyDomain { PrimitiveType: String UpdateType: Immutable + .PARAMETER AutoSubDomainIAMRole + Reason for the current status of the domain. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-autosubdomainiamrole + PrimitiveType: String + UpdateType: Mutable + .PARAMETER DomainName Domain name for the Domain Association. @@ -34,6 +41,21 @@ function New-VSAmplifyDomain { PrimitiveType: String UpdateType: Immutable + .PARAMETER EnableAutoSubDomain + Reason for the current status of the domain. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-enableautosubdomain + PrimitiveType: Boolean + UpdateType: Mutable + + .PARAMETER AutoSubDomainCreationPatterns + Reason for the current status of the domain. + + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-autosubdomaincreationpatterns + 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. @@ -118,6 +140,17 @@ function New-VSAmplifyDomain { } })] $AppId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AutoSubDomainIAMRole, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -129,6 +162,19 @@ function New-VSAmplifyDomain { } })] $DomainName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnableAutoSubDomain, + [parameter(Mandatory = $false)] + $AutoSubDomainCreationPatterns, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -198,6 +244,12 @@ function New-VSAmplifyDomain { } $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name SubDomainSettings -Value @($SubDomainSettings) } + AutoSubDomainCreationPatterns { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name AutoSubDomainCreationPatterns -Value @($AutoSubDomainCreationPatterns) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayApiKey.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayApiKey.ps1 index 2d082bd37..1c2d6d23b 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayApiKey.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayApiKey.ps1 @@ -159,7 +159,7 @@ If you specify a name, you cannot perform updates that require replacement of th $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -170,7 +170,7 @@ If you specify a name, you cannot perform updates that require replacement of th $Enabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayMethod.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayMethod.ps1 index 88c0ad025..3f1a36fe4 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayMethod.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayMethod.ps1 @@ -176,7 +176,7 @@ If you specify the AuthorizerId property, specify CUSTOM for this property. $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayRequestValidator.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayRequestValidator.ps1 index 1a929d58b..837fab125 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayRequestValidator.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayRequestValidator.ps1 @@ -126,7 +126,7 @@ function New-VSApiGatewayRequestValidator { $RestApiId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -137,7 +137,7 @@ function New-VSApiGatewayRequestValidator { $ValidateRequestBody, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayRestApi.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayRestApi.ps1 index b5d9b0387..f6cddc5ba 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayRestApi.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayRestApi.ps1 @@ -229,7 +229,7 @@ On January 1, 2016, the Swagger Specification was donated to the OpenAPI initiat $EndpointConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayStage.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayStage.ps1 index 62e7f7355..771781c30 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayStage.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayStage.ps1 @@ -183,7 +183,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $AccessLogSetting, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -287,7 +287,7 @@ For more information, see Trace API Gateway API Execution with AWS X-Ray: https: $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Api.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Api.ps1 index 816ebfa41..13cd1d497 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Api.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Api.ps1 @@ -225,7 +225,7 @@ function New-VSApiGatewayV2Api { $BasePath, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -236,7 +236,7 @@ function New-VSApiGatewayV2Api { $FailOnWarnings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayV2ApiGatewayManagedOverrides.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayV2ApiGatewayManagedOverrides.ps1 new file mode 100644 index 000000000..cf6e558bd --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayV2ApiGatewayManagedOverrides.ps1 @@ -0,0 +1,199 @@ +function New-VSApiGatewayV2ApiGatewayManagedOverrides { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource to the template. The AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource overrides the default properties of API Gateway-managed resources that are implicitly configured for you when you use quick create. When you create an API by using quick create, an AWS::ApiGatewayV2::Route, AWS::ApiGatewayV2::Integration, and AWS::ApiGatewayV2::Stage are created for you and associated with your AWS::ApiGatewayV2::Api. The AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource enables you to set, or override the properties of these implicit resources. Supported only for HTTP APIs. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource to the template. The AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource overrides the default properties of API Gateway-managed resources that are implicitly configured for you when you use quick create. When you create an API by using quick create, an AWS::ApiGatewayV2::Route, AWS::ApiGatewayV2::Integration, and AWS::ApiGatewayV2::Stage are created for you and associated with your AWS::ApiGatewayV2::Api. The AWS::ApiGatewayV2::ApiGatewayManagedOverrides resource enables you to set, or override the properties of these implicit resources. Supported only for HTTP APIs. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.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 Integration + Overrides the integration configuration for an API Gateway-managed integration. + + Type: IntegrationOverrides + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integration + UpdateType: Mutable + + .PARAMETER Stage + Overrides the stage configuration for an API Gateway-managed stage. + + Type: StageOverrides + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stage + UpdateType: Mutable + + .PARAMETER ApiId + The ID of the API for which to override the configuration of API Gateway-managed resources. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-apiid + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER Route + Overrides the route configuration for an API Gateway-managed route. + + Type: RouteOverrides + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-route + 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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $false)] + $Integration, + [parameter(Mandatory = $false)] + $Stage, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ApiId, + [parameter(Mandatory = $false)] + $Route, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.ApiGatewayManagedOverrides' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Route.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Route.ps1 index f5066f549..e59cc81db 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Route.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Route.ps1 @@ -218,7 +218,7 @@ function New-VSApiGatewayV2Route { $AuthorizationScopes, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Stage.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Stage.ps1 index e12b91eed..ce4dacd94 100644 --- a/VaporShell/Public/Resource Types/New-VSApiGatewayV2Stage.ps1 +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayV2Stage.ps1 @@ -188,7 +188,7 @@ function New-VSApiGatewayV2Stage { $AccessLogSettings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSApiGatewayV2VpcLink.ps1 b/VaporShell/Public/Resource Types/New-VSApiGatewayV2VpcLink.ps1 new file mode 100644 index 000000000..b7130a2d9 --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSApiGatewayV2VpcLink.ps1 @@ -0,0 +1,239 @@ +function New-VSApiGatewayV2VpcLink { + <# + .SYNOPSIS + Adds an AWS::ApiGatewayV2::VpcLink resource to the template. The AWS::ApiGatewayV2::VpcLink resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from PENDING to AVAILABLE to successfully create a VPC link, which can take up to 10 minutes. To learn more, see Working with VPC Links for HTTP APIs: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html in the *API Gateway Developer Guide*. + + .DESCRIPTION + Adds an AWS::ApiGatewayV2::VpcLink resource to the template. The AWS::ApiGatewayV2::VpcLink resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from PENDING to AVAILABLE to successfully create a VPC link, which can take up to 10 minutes. To learn more, see Working with VPC Links for HTTP APIs: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html in the *API Gateway Developer Guide*. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.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 SubnetIds + A list of subnet IDs to include in the VPC link. + + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-subnetids + UpdateType: Immutable + + .PARAMETER SecurityGroupIds + A list of security group IDs for the VPC link. + + PrimitiveItemType: String + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-securitygroupids + UpdateType: Immutable + + .PARAMETER Tags + The collection of tags. Each tag element is associated with a given resource. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-tags + PrimitiveType: Json + UpdateType: Mutable + + .PARAMETER Name + The name of the VPC link. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-name + PrimitiveType: String + 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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.ApiGatewayV2.VpcLink')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + $SubnetIds, + [parameter(Mandatory = $false)] + $SecurityGroupIds, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","System.Collections.Hashtable","System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Tags, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Name, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::ApiGatewayV2::VpcLink" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + SubnetIds { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name SubnetIds -Value @($SubnetIds) + } + SecurityGroupIds { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name SecurityGroupIds -Value @($SecurityGroupIds) + } + Tags { + if (($PSBoundParameters[$key]).PSObject.TypeNames -contains "System.String"){ + try { + $JSONObject = (ConvertFrom-Json -InputObject $PSBoundParameters[$key] -ErrorAction Stop) + } + catch { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "Unable to convert parameter '$key' string value to PSObject! Please use a JSON string OR provide a Hashtable or PSCustomObject instead!")) + } + } + else { + $JSONObject = ([PSCustomObject]$PSBoundParameters[$key]) + } + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $JSONObject + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ApiGatewayV2.VpcLink' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSAppConfigDeploymentStrategy.ps1 b/VaporShell/Public/Resource Types/New-VSAppConfigDeploymentStrategy.ps1 index f9fa0e640..65467f9ac 100644 --- a/VaporShell/Public/Resource Types/New-VSAppConfigDeploymentStrategy.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppConfigDeploymentStrategy.ps1 @@ -186,7 +186,7 @@ Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4 $Description, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -197,7 +197,7 @@ Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4 $DeploymentDurationInMinutes, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -208,7 +208,7 @@ Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4 $GrowthFactor, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppConfigHostedConfigurationVersion.ps1 b/VaporShell/Public/Resource Types/New-VSAppConfigHostedConfigurationVersion.ps1 new file mode 100644 index 000000000..785ca75a7 --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSAppConfigHostedConfigurationVersion.ps1 @@ -0,0 +1,250 @@ +function New-VSAppConfigHostedConfigurationVersion { + <# + .SYNOPSIS + Adds an AWS::AppConfig::HostedConfigurationVersion resource to the template. + + .DESCRIPTION + Adds an AWS::AppConfig::HostedConfigurationVersion resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.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 ConfigurationProfileId + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-configurationprofileid + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER Description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-description + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER ContentType + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-contenttype + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER LatestVersionNumber + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-latestversionnumber + PrimitiveType: Double + UpdateType: Immutable + + .PARAMETER Content + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-content + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER ApplicationId + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-applicationid + PrimitiveType: String + 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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.AppConfig.HostedConfigurationVersion')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ConfigurationProfileId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ContentType, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $LatestVersionNumber, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Content, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ApplicationId, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::AppConfig::HostedConfigurationVersion" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.AppConfig.HostedConfigurationVersion' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSAppStreamFleet.ps1 b/VaporShell/Public/Resource Types/New-VSAppStreamFleet.ps1 index 86f2f98a5..414d1b314 100644 --- a/VaporShell/Public/Resource Types/New-VSAppStreamFleet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppStreamFleet.ps1 @@ -248,7 +248,7 @@ Specify a value between 60 and 360000. $FleetType, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppStreamImageBuilder.ps1 b/VaporShell/Public/Resource Types/New-VSAppStreamImageBuilder.ps1 index 993a3bd42..5ac538166 100644 --- a/VaporShell/Public/Resource Types/New-VSAppStreamImageBuilder.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppStreamImageBuilder.ps1 @@ -220,7 +220,7 @@ The initial state of the image builder is PENDING. When it is ready, the state i $VpcConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppStreamStack.ps1 b/VaporShell/Public/Resource Types/New-VSAppStreamStack.ps1 index c5b64bc10..c1fe9a696 100644 --- a/VaporShell/Public/Resource Types/New-VSAppStreamStack.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppStreamStack.ps1 @@ -196,7 +196,7 @@ Deletes the storage connectors currently enabled for the stack. $StorageConnectors, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppStreamStackUserAssociation.ps1 b/VaporShell/Public/Resource Types/New-VSAppStreamStackUserAssociation.ps1 index b898a54ec..aeb7a0a15 100644 --- a/VaporShell/Public/Resource Types/New-VSAppStreamStackUserAssociation.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppStreamStackUserAssociation.ps1 @@ -105,7 +105,7 @@ Users' email addresses are case-sensitive. $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppSyncApiCache.ps1 b/VaporShell/Public/Resource Types/New-VSAppSyncApiCache.ps1 index 7bbadfcba..d2e38142c 100644 --- a/VaporShell/Public/Resource Types/New-VSAppSyncApiCache.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppSyncApiCache.ps1 @@ -139,7 +139,7 @@ Valid values are between 1 and 3600 seconds. $Type, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -150,7 +150,7 @@ Valid values are between 1 and 3600 seconds. $TransitEncryptionEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -183,7 +183,7 @@ Valid values are between 1 and 3600 seconds. $ApiCachingBehavior, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppSyncApiKey.ps1 b/VaporShell/Public/Resource Types/New-VSAppSyncApiKey.ps1 index 3f1b72c24..3fdfa85f9 100644 --- a/VaporShell/Public/Resource Types/New-VSAppSyncApiKey.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppSyncApiKey.ps1 @@ -108,7 +108,7 @@ function New-VSAppSyncApiKey { $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAppSyncGraphQLApi.ps1 b/VaporShell/Public/Resource Types/New-VSAppSyncGraphQLApi.ps1 index 2500557b8..ebce461b2 100644 --- a/VaporShell/Public/Resource Types/New-VSAppSyncGraphQLApi.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAppSyncGraphQLApi.ps1 @@ -134,7 +134,7 @@ function New-VSAppSyncGraphQLApi { $OpenIDConnectConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAthenaDataCatalog.ps1 b/VaporShell/Public/Resource Types/New-VSAthenaDataCatalog.ps1 new file mode 100644 index 000000000..9c91e927b --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSAthenaDataCatalog.ps1 @@ -0,0 +1,218 @@ +function New-VSAthenaDataCatalog { + <# + .SYNOPSIS + Adds an AWS::Athena::DataCatalog resource to the template. + + .DESCRIPTION + Adds an AWS::Athena::DataCatalog resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.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 Name + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-name + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-description + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Parameters + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-parameters + UpdateType: Mutable + Type: Map + PrimitiveItemType: String + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-tags + UpdateType: Mutable + Type: Tags + + .PARAMETER Type + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-type + UpdateType: Mutable + PrimitiveType: String + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.Athena.DataCatalog')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Name, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $false)] + [System.Collections.Hashtable] + $Parameters, + [parameter(Mandatory = $false)] + $Tags, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Type, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::Athena::DataCatalog" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.Athena.DataCatalog' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSAthenaWorkGroup.ps1 b/VaporShell/Public/Resource Types/New-VSAthenaWorkGroup.ps1 index 9e99c18a7..34cdf7986 100644 --- a/VaporShell/Public/Resource Types/New-VSAthenaWorkGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAthenaWorkGroup.ps1 @@ -165,7 +165,7 @@ For more information, see Tag: https://docs.aws.amazon.com/AWSCloudFormation/lat $State, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSAutoScalingAutoScalingGroup.ps1 b/VaporShell/Public/Resource Types/New-VSAutoScalingAutoScalingGroup.ps1 index 65c0a7049..bad0395af 100644 --- a/VaporShell/Public/Resource Types/New-VSAutoScalingAutoScalingGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAutoScalingAutoScalingGroup.ps1 @@ -160,6 +160,13 @@ You must specify one of the following properties: LaunchConfigurationName, Launc Type: MixedInstancesPolicy UpdateType: Mutable + .PARAMETER NewInstancesProtectedFromScaleIn + + Suspending and Resuming Scaling Processes: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html in the *Amazon EC2 Auto Scaling User Guide* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-newinstancesprotectedfromscalein + PrimitiveType: Boolean + UpdateType: Mutable + .PARAMETER NotificationConfigurations Configures an Auto Scaling group to send notifications when specified events take place. @@ -432,6 +439,17 @@ When you update VPCZoneIdentifier, this retains the same Auto Scaling group and [parameter(Mandatory = $false)] $MixedInstancesPolicy, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $NewInstancesProtectedFromScaleIn, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.AutoScaling.AutoScalingGroup.NotificationConfiguration" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSAutoScalingLaunchConfiguration.ps1 b/VaporShell/Public/Resource Types/New-VSAutoScalingLaunchConfiguration.ps1 index 7984e6b6c..47dadd4ec 100644 --- a/VaporShell/Public/Resource Types/New-VSAutoScalingLaunchConfiguration.ps1 +++ b/VaporShell/Public/Resource Types/New-VSAutoScalingLaunchConfiguration.ps1 @@ -233,7 +233,7 @@ For more information, see Instance Metadata and User Data: https://docs.aws.amaz $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -268,7 +268,7 @@ For more information, see Instance Metadata and User Data: https://docs.aws.amaz $ClassicLinkVPCSecurityGroups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -312,7 +312,7 @@ For more information, see Instance Metadata and User Data: https://docs.aws.amaz $InstanceId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCertificateManagerCertificate.ps1 b/VaporShell/Public/Resource Types/New-VSCertificateManagerCertificate.ps1 index a94ad4bb9..a6531a587 100644 --- a/VaporShell/Public/Resource Types/New-VSCertificateManagerCertificate.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCertificateManagerCertificate.ps1 @@ -16,6 +16,16 @@ When you use the AWS::CertificateManager::Certificate resource in an AWS CloudFo .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 CertificateAuthorityArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificateauthorityarn + PrimitiveType: String + UpdateType: Immutable + + .PARAMETER CertificateTransparencyLoggingPreference + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificatetransparencyloggingpreference + PrimitiveType: String + UpdateType: Mutable + .PARAMETER DomainName The fully qualified domain name FQDN, such as www.example.com, with which you want to secure an ACM certificate. Use an asterisk * to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. @@ -119,6 +129,28 @@ When you use the AWS::CertificateManager::Certificate resource in an AWS CloudFo })] [System.String] $LogicalId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CertificateAuthorityArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $CertificateTransparencyLoggingPreference, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" diff --git a/VaporShell/Public/Resource Types/New-VSChatbotSlackChannelConfiguration.ps1 b/VaporShell/Public/Resource Types/New-VSChatbotSlackChannelConfiguration.ps1 index 5edf3d91a..074897f20 100644 --- a/VaporShell/Public/Resource Types/New-VSChatbotSlackChannelConfiguration.ps1 +++ b/VaporShell/Public/Resource Types/New-VSChatbotSlackChannelConfiguration.ps1 @@ -61,13 +61,6 @@ Logging levels include ERROR, INFO, or NONE. UpdateType: Mutable PrimitiveType: String - .PARAMETER Arn - Not currently supported by AWS CloudFormation. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-arn - UpdateType: Mutable - PrimitiveType: String - .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. @@ -187,17 +180,6 @@ Logging levels include ERROR, INFO, or NONE. } })] $LoggingLevel, - [parameter(Mandatory = $false)] - [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" - if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { - $true - } - else { - $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) - } - })] - $Arn, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, diff --git a/VaporShell/Public/Resource Types/New-VSCloudTrailTrail.ps1 b/VaporShell/Public/Resource Types/New-VSCloudTrailTrail.ps1 index 9f9be86b6..d9009e4d5 100644 --- a/VaporShell/Public/Resource Types/New-VSCloudTrailTrail.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCloudTrailTrail.ps1 @@ -207,7 +207,7 @@ arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail $CloudWatchLogsRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -229,7 +229,7 @@ arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail $EventSelectors, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -240,7 +240,7 @@ arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail $IncludeGlobalServiceEvents, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -251,7 +251,7 @@ arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail $IsLogging, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCloudWatchAlarm.ps1 b/VaporShell/Public/Resource Types/New-VSCloudWatchAlarm.ps1 index c51a4c4d5..a959eb826 100644 --- a/VaporShell/Public/Resource Types/New-VSCloudWatchAlarm.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCloudWatchAlarm.ps1 @@ -245,7 +245,7 @@ You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -405,7 +405,7 @@ You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes $Statistic, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCloudWatchCompositeAlarm.ps1 b/VaporShell/Public/Resource Types/New-VSCloudWatchCompositeAlarm.ps1 index d55bb1e54..897a94860 100644 --- a/VaporShell/Public/Resource Types/New-VSCloudWatchCompositeAlarm.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCloudWatchCompositeAlarm.ps1 @@ -180,7 +180,7 @@ For more information about AlarmRule syntax, see PutCompositeAlarm: https://docs $AlarmDescription, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCodeBuildProject.ps1 b/VaporShell/Public/Resource Types/New-VSCodeBuildProject.ps1 index e16e7ae2c..6bf44c66b 100644 --- a/VaporShell/Public/Resource Types/New-VSCodeBuildProject.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodeBuildProject.ps1 @@ -305,7 +305,7 @@ These tags are available for use by AWS services that support AWS CodeBuild buil $Artifacts, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCodeGuruProfilerProfilingGroup.ps1 b/VaporShell/Public/Resource Types/New-VSCodeGuruProfilerProfilingGroup.ps1 index f480a2736..dd5dd3bd7 100644 --- a/VaporShell/Public/Resource Types/New-VSCodeGuruProfilerProfilingGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodeGuruProfilerProfilingGroup.ps1 @@ -19,6 +19,20 @@ function New-VSCodeGuruProfilerProfilingGroup { UpdateType: Immutable PrimitiveType: String + .PARAMETER ComputePlatform + The full Amazon Resource Name ARN for that profiling group. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-computeplatform + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER AgentPermissions + The full Amazon Resource Name ARN for that profiling group. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-agentpermissions + UpdateType: Mutable + PrimitiveType: Json + .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. @@ -92,6 +106,28 @@ function New-VSCodeGuruProfilerProfilingGroup { } })] $ProfilingGroupName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ComputePlatform, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","System.Collections.Hashtable","System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AgentPermissions, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -155,6 +191,23 @@ function New-VSCodeGuruProfilerProfilingGroup { Condition { $ResourceParams.Add("Condition",$Condition) } + AgentPermissions { + if (($PSBoundParameters[$key]).PSObject.TypeNames -contains "System.String"){ + try { + $JSONObject = (ConvertFrom-Json -InputObject $PSBoundParameters[$key] -ErrorAction Stop) + } + catch { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "Unable to convert parameter '$key' string value to PSObject! Please use a JSON string OR provide a Hashtable or PSCustomObject instead!")) + } + } + else { + $JSONObject = ([PSCustomObject]$PSBoundParameters[$key]) + } + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $JSONObject + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSCodePipelinePipeline.ps1 b/VaporShell/Public/Resource Types/New-VSCodePipelinePipeline.ps1 index 6420500b5..cec2b0553 100644 --- a/VaporShell/Public/Resource Types/New-VSCodePipelinePipeline.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodePipelinePipeline.ps1 @@ -177,7 +177,7 @@ You must include either artifactStore or artifactStores in your pipeline, but yo $Name, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCodePipelineWebhook.ps1 b/VaporShell/Public/Resource Types/New-VSCodePipelineWebhook.ps1 index 3ef25912f..0463ce16b 100644 --- a/VaporShell/Public/Resource Types/New-VSCodePipelineWebhook.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodePipelineWebhook.ps1 @@ -210,7 +210,7 @@ When passing secret parameters, do not enter the value directly into the templat $TargetPipelineVersion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCodeStarConnectionsConnection.ps1 b/VaporShell/Public/Resource Types/New-VSCodeStarConnectionsConnection.ps1 index ae3cb77c1..e2a1a6004 100644 --- a/VaporShell/Public/Resource Types/New-VSCodeStarConnectionsConnection.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodeStarConnectionsConnection.ps1 @@ -32,6 +32,11 @@ The AWS::CodeStarConnections::Connection resource can be used to connect externa UpdateType: Immutable PrimitiveType: String + .PARAMETER HostArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-hostarn + UpdateType: Immutable + PrimitiveType: String + .PARAMETER Tags Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-tags UpdateType: Mutable @@ -111,7 +116,7 @@ The AWS::CodeStarConnections::Connection resource can be used to connect externa } })] $ConnectionName, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -122,6 +127,17 @@ The AWS::CodeStarConnections::Connection resource can be used to connect externa } })] $ProviderType, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $HostArn, [VaporShell.Core.TransformTag()] [parameter(Mandatory = $false)] $Tags, diff --git a/VaporShell/Public/Resource Types/New-VSCodeStarGitHubRepository.ps1 b/VaporShell/Public/Resource Types/New-VSCodeStarGitHubRepository.ps1 index 1d0e27475..4d836279b 100644 --- a/VaporShell/Public/Resource Types/New-VSCodeStarGitHubRepository.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCodeStarGitHubRepository.ps1 @@ -125,7 +125,7 @@ function New-VSCodeStarGitHubRepository { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -169,7 +169,7 @@ function New-VSCodeStarGitHubRepository { $RepositoryOwner, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCognitoIdentityPool.ps1 b/VaporShell/Public/Resource Types/New-VSCognitoIdentityPool.ps1 index 9e713e7d2..32f50519a 100644 --- a/VaporShell/Public/Resource Types/New-VSCognitoIdentityPool.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCognitoIdentityPool.ps1 @@ -211,7 +211,7 @@ To avoid deleting the resource accidentally from AWS CloudFormation, use Deletio $IdentityPoolName, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -237,7 +237,7 @@ To avoid deleting the resource accidentally from AWS CloudFormation, use Deletio $OpenIdConnectProviderARNs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolClient.ps1 b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolClient.ps1 index fe88366ad..d4b71a420 100644 --- a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolClient.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolClient.ps1 @@ -223,7 +223,7 @@ If your app client allows users to sign in through an identity provider, this ar $AnalyticsConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -240,7 +240,7 @@ If your app client allows users to sign in through an identity provider, this ar $ReadAttributes, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolGroup.ps1 b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolGroup.ps1 index d44fdf33d..47e167de6 100644 --- a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolGroup.ps1 @@ -148,7 +148,7 @@ The default Precedence value is null. $UserPoolId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolUser.ps1 b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolUser.ps1 index c3be4ff46..7e9ffdb97 100644 --- a/VaporShell/Public/Resource Types/New-VSCognitoUserPoolUser.ps1 +++ b/VaporShell/Public/Resource Types/New-VSCognitoUserPoolUser.ps1 @@ -207,7 +207,7 @@ In your call to AdminCreateUser, you can set the email_verified attribute to Tru $DesiredDeliveryMediums, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSConfigRemediationConfiguration.ps1 b/VaporShell/Public/Resource Types/New-VSConfigRemediationConfiguration.ps1 index c5da25304..ce2924be8 100644 --- a/VaporShell/Public/Resource Types/New-VSConfigRemediationConfiguration.ps1 +++ b/VaporShell/Public/Resource Types/New-VSConfigRemediationConfiguration.ps1 @@ -240,7 +240,7 @@ For example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptsSeco $TargetId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDMSEventSubscription.ps1 b/VaporShell/Public/Resource Types/New-VSDMSEventSubscription.ps1 index ed98936a5..0ed455d4f 100644 --- a/VaporShell/Public/Resource Types/New-VSDMSEventSubscription.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDMSEventSubscription.ps1 @@ -144,7 +144,7 @@ If you specify multiple values, they must be of the same type. For example, if y $EventCategories, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDMSReplicationInstance.ps1 b/VaporShell/Public/Resource Types/New-VSDMSReplicationInstance.ps1 index f8845efa1..a5e1459ff 100644 --- a/VaporShell/Public/Resource Types/New-VSDMSReplicationInstance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDMSReplicationInstance.ps1 @@ -246,7 +246,7 @@ Valid Values: dms.t2.micro | dms.t2.small | dms.t2.medium | dms.t2.large | dms.c $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -281,7 +281,7 @@ Valid Values: dms.t2.micro | dms.t2.small | dms.t2.medium | dms.t2.large | dms.c $VpcSecurityGroupIds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -303,7 +303,7 @@ Valid Values: dms.t2.micro | dms.t2.small | dms.t2.medium | dms.t2.large | dms.c $ReplicationInstanceClass, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -314,7 +314,7 @@ Valid Values: dms.t2.micro | dms.t2.small | dms.t2.medium | dms.t2.large | dms.c $PubliclyAccessible, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDMSReplicationTask.ps1 b/VaporShell/Public/Resource Types/New-VSDMSReplicationTask.ps1 index 51d4b12b0..706b650b0 100644 --- a/VaporShell/Public/Resource Types/New-VSDMSReplicationTask.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDMSReplicationTask.ps1 @@ -285,7 +285,7 @@ Commit time example: --cdc-stop-position “commit_time: 3018-02-09T12:12:12 “ $TaskData, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDataPipelinePipeline.ps1 b/VaporShell/Public/Resource Types/New-VSDataPipelinePipeline.ps1 index fee19251d..af32b5dff 100644 --- a/VaporShell/Public/Resource Types/New-VSDataPipelinePipeline.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDataPipelinePipeline.ps1 @@ -147,7 +147,7 @@ Pipeline object definitions are passed to the PutPipelineDefinition: https://doc $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDirectoryServiceMicrosoftAD.ps1 b/VaporShell/Public/Resource Types/New-VSDirectoryServiceMicrosoftAD.ps1 index e16b7a4e6..eaf31a150 100644 --- a/VaporShell/Public/Resource Types/New-VSDirectoryServiceMicrosoftAD.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDirectoryServiceMicrosoftAD.ps1 @@ -129,7 +129,7 @@ If you need to change the password for the administrator account, see the ResetU $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -151,7 +151,7 @@ If you need to change the password for the administrator account, see the ResetU $Edition, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDirectoryServiceSimpleAD.ps1 b/VaporShell/Public/Resource Types/New-VSDirectoryServiceSimpleAD.ps1 index 963dbaac3..160e51f5f 100644 --- a/VaporShell/Public/Resource Types/New-VSDirectoryServiceSimpleAD.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDirectoryServiceSimpleAD.ps1 @@ -136,7 +136,7 @@ If you need to change the password for the administrator account, see the ResetU $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -158,7 +158,7 @@ If you need to change the password for the administrator account, see the ResetU $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDocDBDBCluster.ps1 b/VaporShell/Public/Resource Types/New-VSDocDBDBCluster.ps1 index 0030cd1c0..e6e23dedc 100644 --- a/VaporShell/Public/Resource Types/New-VSDocDBDBCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDocDBDBCluster.ps1 @@ -242,7 +242,7 @@ Constraints: $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -332,7 +332,7 @@ Constraints: $DBSubnetGroupName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDocDBDBInstance.ps1 b/VaporShell/Public/Resource Types/New-VSDocDBDBInstance.ps1 index 79510533c..0c6f33c9f 100644 --- a/VaporShell/Public/Resource Types/New-VSDocDBDBInstance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDocDBDBInstance.ps1 @@ -183,7 +183,7 @@ Example: mydbinstance $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSDynamoDBTable.ps1 b/VaporShell/Public/Resource Types/New-VSDynamoDBTable.ps1 index 3eb619884..af67df403 100644 --- a/VaporShell/Public/Resource Types/New-VSDynamoDBTable.ps1 +++ b/VaporShell/Public/Resource Types/New-VSDynamoDBTable.ps1 @@ -91,7 +91,7 @@ Update requires: Some interruptions: https://docs.aws.amazon.com/AWSCloudFormati Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-ssespecification Type: SSESpecification - UpdateType: Conditional + UpdateType: Mutable .PARAMETER StreamSpecification The settings for the DynamoDB table stream, which capture changes to items stored in the table. diff --git a/VaporShell/Public/Resource Types/New-VSEC2CapacityReservation.ps1 b/VaporShell/Public/Resource Types/New-VSEC2CapacityReservation.ps1 index 1eaeef5df..2f5ba859e 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2CapacityReservation.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2CapacityReservation.ps1 @@ -240,7 +240,7 @@ If the EndDateType is limited, the Capacity Reservation is cancelled within an h $InstanceType, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -273,7 +273,7 @@ If the EndDateType is limited, the Capacity Reservation is cancelled within an h $EndDate, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2ClientVpnAuthorizationRule.ps1 b/VaporShell/Public/Resource Types/New-VSEC2ClientVpnAuthorizationRule.ps1 index cbad15e00..8f4678c1e 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2ClientVpnAuthorizationRule.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2ClientVpnAuthorizationRule.ps1 @@ -155,7 +155,7 @@ function New-VSEC2ClientVpnAuthorizationRule { $TargetNetworkCidr, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2ClientVpnEndpoint.ps1 b/VaporShell/Public/Resource Types/New-VSEC2ClientVpnEndpoint.ps1 index 716ca81c2..d3dcd3769 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2ClientVpnEndpoint.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2ClientVpnEndpoint.ps1 @@ -187,7 +187,7 @@ Default Value: 443 $ConnectionLogOptions, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2EC2Fleet.ps1 b/VaporShell/Public/Resource Types/New-VSEC2EC2Fleet.ps1 index 188f397be..baa679787 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2EC2Fleet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2EC2Fleet.ps1 @@ -205,7 +205,7 @@ function New-VSEC2EC2Fleet { $ValidFrom, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -227,7 +227,7 @@ function New-VSEC2EC2Fleet { $LaunchTemplateConfigs, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2FlowLog.ps1 b/VaporShell/Public/Resource Types/New-VSEC2FlowLog.ps1 index e0b27f231..cb377a6d9 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2FlowLog.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2FlowLog.ps1 @@ -17,8 +17,8 @@ function New-VSEC2FlowLog { If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER LogDestination Specifies the destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group or an Amazon S3 bucket. The value specified for this parameter depends on the value specified for LogDestinationType. @@ -26,8 +26,8 @@ If LogDestinationType is not specified or cloud-watch-logs, specify the Amazon R If LogDestinationType is s3, specify the ARN of the Amazon S3 bucket. You can also specify a subfolder in the bucket. To specify a subfolder in the bucket, use the following ARN format: bucket_ARN/subfolder_name/. For example, to specify a subfolder named my-logs in a bucket named my-bucket, use the following ARN: arn:aws:s3:::my-bucket/my-logs/. You cannot use AWSLogs as a subfolder name. This is a reserved term. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logdestination - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER LogDestinationType Specifies the type of destination to which the flow log data is to be published. Flow log data can be published to CloudWatch Logs or Amazon S3. To publish flow log data to CloudWatch Logs, specify cloud-watch-logs. To publish flow log data to Amazon S3, specify s3. @@ -35,37 +35,54 @@ If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn Default: cloud-watch-logs Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logdestinationtype + UpdateType: Immutable PrimitiveType: String + + .PARAMETER LogFormat + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logformat UpdateType: Immutable + PrimitiveType: String .PARAMETER LogGroupName The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs. If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-loggroupname + UpdateType: Immutable PrimitiveType: String + + .PARAMETER MaxAggregationInterval + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-maxaggregationinterval UpdateType: Immutable + PrimitiveType: Integer .PARAMETER ResourceId The ID of the subnet, network interface, or VPC for which you want to create a flow log. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourceid - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ResourceType The type of resource for which to create the flow log. For example, if you specified a VPC ID for the ResourceId property, specify VPC for this property. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourcetype - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-tags + UpdateType: Mutable + Type: List + ItemType: Tag + DuplicatesAllowed: True .PARAMETER TrafficType The type of traffic to log. You can log traffic that the resource accepts or rejects, or all traffic. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-traffictype - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .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. @@ -163,6 +180,17 @@ If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn })] $LogDestinationType, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $LogFormat, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -173,6 +201,17 @@ If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn } })] $LogGroupName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MaxAggregationInterval, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -195,6 +234,9 @@ If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn } })] $ResourceType, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -269,6 +311,12 @@ If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn Condition { $ResourceParams.Add("Condition",$Condition) } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSEC2Instance.ps1 b/VaporShell/Public/Resource Types/New-VSEC2Instance.ps1 index 2a9f19d71..ecb92545f 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2Instance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2Instance.ps1 @@ -435,7 +435,7 @@ If you specify a network interface, you must specify any subnets as part of the $CreditSpecification, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -446,7 +446,7 @@ If you specify a network interface, you must specify any subnets as part of the $DisableApiTermination, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -604,7 +604,7 @@ If you specify a network interface, you must specify any subnets as part of the $LicenseSpecifications, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -663,7 +663,7 @@ If you specify a network interface, you must specify any subnets as part of the $SecurityGroups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2NetworkAclEntry.ps1 b/VaporShell/Public/Resource Types/New-VSEC2NetworkAclEntry.ps1 index aa4c7ff41..cb42e42f6 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2NetworkAclEntry.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2NetworkAclEntry.ps1 @@ -153,7 +153,7 @@ If you specify -1, all ports are opened and the PortRange property is ignored. $CidrBlock, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2NetworkInterface.ps1 b/VaporShell/Public/Resource Types/New-VSEC2NetworkInterface.ps1 index fbd61fe9b..b592cfc12 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2NetworkInterface.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2NetworkInterface.ps1 @@ -230,7 +230,7 @@ The number of IP addresses you can assign to a network interface varies by insta $SecondaryPrivateIpAddressCount, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2NetworkInterfaceAttachment.ps1 b/VaporShell/Public/Resource Types/New-VSEC2NetworkInterfaceAttachment.ps1 index 517953623..b31ba86a6 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2NetworkInterfaceAttachment.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2NetworkInterfaceAttachment.ps1 @@ -104,7 +104,7 @@ function New-VSEC2NetworkInterfaceAttachment { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2PrefixList.ps1 b/VaporShell/Public/Resource Types/New-VSEC2PrefixList.ps1 new file mode 100644 index 000000000..5d1572df4 --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSEC2PrefixList.ps1 @@ -0,0 +1,240 @@ +function New-VSEC2PrefixList { + <# + .SYNOPSIS + Adds an AWS::EC2::PrefixList resource to the template. + + .DESCRIPTION + Adds an AWS::EC2::PrefixList resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.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 PrefixListName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-prefixlistname + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER AddressFamily + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-addressfamily + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER MaxEntries + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-maxentries + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-tags + UpdateType: Mutable + Type: List + ItemType: Tag + + .PARAMETER Entries + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-entries + UpdateType: Mutable + Type: List + ItemType: Entry + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.EC2.PrefixList')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PrefixListName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AddressFamily, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MaxEntries, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.EC2.PrefixList.Entry" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Entries, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::EC2::PrefixList" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } + Entries { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Entries -Value @($Entries) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EC2.PrefixList' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSEC2Subnet.ps1 b/VaporShell/Public/Resource Types/New-VSEC2Subnet.ps1 index c8c03a72b..c37ec438e 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2Subnet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2Subnet.ps1 @@ -138,7 +138,7 @@ If you update this property, you must also update the CidrBlock property. $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -182,7 +182,7 @@ If you update this property, you must also update the CidrBlock property. $Ipv6CidrBlock, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2TransitGatewayRoute.ps1 b/VaporShell/Public/Resource Types/New-VSEC2TransitGatewayRoute.ps1 index d0fae0c9b..cad8f55bf 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2TransitGatewayRoute.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2TransitGatewayRoute.ps1 @@ -126,7 +126,7 @@ function New-VSEC2TransitGatewayRoute { $DestinationCidrBlock, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2VPC.ps1 b/VaporShell/Public/Resource Types/New-VSEC2VPC.ps1 index d5e121f41..2417ea473 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2VPC.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2VPC.ps1 @@ -128,7 +128,7 @@ Updating InstanceTenancy requires no replacement only if you are updating its va $CidrBlock, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -139,7 +139,7 @@ Updating InstanceTenancy requires no replacement only if you are updating its va $EnableDnsHostnames, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2VPCCidrBlock.ps1 b/VaporShell/Public/Resource Types/New-VSEC2VPCCidrBlock.ps1 index e4e495ad2..4b1e71651 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2VPCCidrBlock.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2VPCCidrBlock.ps1 @@ -99,7 +99,7 @@ For more information about associating CIDR blocks with your VPC and applicable $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2VPCEndpoint.ps1 b/VaporShell/Public/Resource Types/New-VSEC2VPCEndpoint.ps1 index a6363a3f3..4ebc9092c 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2VPCEndpoint.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2VPCEndpoint.ps1 @@ -159,7 +159,7 @@ This field is required when the endpoint is an interface. $PolicyDocument, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2VPCEndpointService.ps1 b/VaporShell/Public/Resource Types/New-VSEC2VPCEndpointService.ps1 index 803e0b62e..3d1ff70dc 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2VPCEndpointService.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2VPCEndpointService.ps1 @@ -95,7 +95,7 @@ To create an endpoint service configuration, you must first create a Network Loa $NetworkLoadBalancerArns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2VPNConnection.ps1 b/VaporShell/Public/Resource Types/New-VSEC2VPNConnection.ps1 index a47e37c0b..8b43b38d4 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2VPNConnection.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2VPNConnection.ps1 @@ -149,7 +149,7 @@ You must specify either TransitGatewayId or VpnGatewayId, but not both. $CustomerGatewayId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEC2Volume.ps1 b/VaporShell/Public/Resource Types/New-VSEC2Volume.ps1 index e406eb630..bd28b4c1b 100644 --- a/VaporShell/Public/Resource Types/New-VSEC2Volume.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEC2Volume.ps1 @@ -83,6 +83,13 @@ AWS CloudFormation does not currently support updating a single-attach volume to PrimitiveType: Boolean UpdateType: Mutable + .PARAMETER OutpostArn + + CreateVolume: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html in the *Amazon Elastic Compute Cloud API Reference* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-outpostarn + PrimitiveType: String + UpdateType: Mutable + .PARAMETER Size The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. Constraints: 1-16,384 for gp2, 4-16,384 for io1, 500-16,384 for st1, 500-16,384 for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. @@ -180,7 +187,7 @@ Default: gp2 $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -202,7 +209,7 @@ Default: gp2 $AvailabilityZone, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -235,7 +242,7 @@ Default: gp2 $KmsKeyId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -245,6 +252,17 @@ Default: gp2 })] $MultiAttachEnabled, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $OutpostArn, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.Int32","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSECSCapacityProvider.ps1 b/VaporShell/Public/Resource Types/New-VSECSCapacityProvider.ps1 new file mode 100644 index 000000000..96d1ee1df --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSECSCapacityProvider.ps1 @@ -0,0 +1,192 @@ +function New-VSECSCapacityProvider { + <# + .SYNOPSIS + Adds an AWS::ECS::CapacityProvider resource to the template. + + .DESCRIPTION + Adds an AWS::ECS::CapacityProvider resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.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 AutoScalingGroupProvider + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider + UpdateType: Immutable + Type: AutoScalingGroupProvider + + .PARAMETER Name + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-name + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-tags + UpdateType: Mutable + Type: List + ItemType: Tag + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.ECS.CapacityProvider')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + $AutoScalingGroupProvider, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Name, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::ECS::CapacityProvider" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.ECS.CapacityProvider' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSECSCluster.ps1 b/VaporShell/Public/Resource Types/New-VSECSCluster.ps1 index 6392059b3..f5a7bdd72 100644 --- a/VaporShell/Public/Resource Types/New-VSECSCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSECSCluster.ps1 @@ -43,6 +43,18 @@ The following basic restrictions apply to tags: Type: List ItemType: ClusterSettings + .PARAMETER CapacityProviders + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-capacityproviders + UpdateType: Mutable + Type: List + PrimitiveItemType: String + + .PARAMETER DefaultCapacityProviderStrategy + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-defaultcapacityproviderstrategy + UpdateType: Mutable + Type: List + ItemType: CapacityProviderStrategyItem + .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. @@ -130,6 +142,19 @@ The following basic restrictions apply to tags: } })] $ClusterSettings, + [parameter(Mandatory = $false)] + $CapacityProviders, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.ECS.Cluster.CapacityProviderStrategyItem" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DefaultCapacityProviderStrategy, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -205,6 +230,18 @@ The following basic restrictions apply to tags: } $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name ClusterSettings -Value @($ClusterSettings) } + CapacityProviders { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name CapacityProviders -Value @($CapacityProviders) + } + DefaultCapacityProviderStrategy { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name DefaultCapacityProviderStrategy -Value @($DefaultCapacityProviderStrategy) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSECSService.ps1 b/VaporShell/Public/Resource Types/New-VSECSService.ps1 index 3610beee5..fb9822d28 100644 --- a/VaporShell/Public/Resource Types/New-VSECSService.ps1 +++ b/VaporShell/Public/Resource Types/New-VSECSService.ps1 @@ -264,7 +264,7 @@ A task definition must be specified if the service is using the ECS deployment c $DesiredCount, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSECSTaskDefinition.ps1 b/VaporShell/Public/Resource Types/New-VSECSTaskDefinition.ps1 index de8b7f196..10f49ab8a 100644 --- a/VaporShell/Public/Resource Types/New-VSECSTaskDefinition.ps1 +++ b/VaporShell/Public/Resource Types/New-VSECSTaskDefinition.ps1 @@ -12,64 +12,52 @@ function New-VSECSTaskDefinition { .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 Family + The name of a family that this task definition is registered to. Up to 255 letters uppercase and lowercase, numbers, hyphens, and underscores are allowed. +A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add. +To use revision numbers when you update a task definition, specify this property. If you don't specify a value, AWS CloudFormation generates a new task definition each time that you update it. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-family + UpdateType: Immutable + PrimitiveType: String + .PARAMETER ContainerDefinitions A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-containerdefinitions - DuplicatesAllowed: False - ItemType: ContainerDefinition - Type: List UpdateType: Immutable + Type: List + ItemType: ContainerDefinition + DuplicatesAllowed: False .PARAMETER Cpu Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-cpu - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ExecutionRoleArn The Amazon Resource Name ARN of the task execution role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-executionrolearn - PrimitiveType: String UpdateType: Immutable - - .PARAMETER Family - The name of a family that this task definition is registered to. Up to 255 letters uppercase and lowercase, numbers, hyphens, and underscores are allowed. -A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add. -To use revision numbers when you update a task definition, specify this property. If you don't specify a value, AWS CloudFormation generates a new task definition each time that you update it. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-family PrimitiveType: String - UpdateType: Immutable .PARAMETER InferenceAccelerators The Elastic Inference accelerators to use for the containers in the task. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-inferenceaccelerators - DuplicatesAllowed: False - ItemType: InferenceAccelerator - Type: List - UpdateType: Immutable - - .PARAMETER IpcMode - The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings: https://docs.docker.com/engine/reference/run/#ipc-settings---ipc in the *Docker run reference*. -If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security: https://docs.docker.com/engine/security/security/. -If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html in the *Amazon Elastic Container Service Developer Guide*. -+ For tasks that use the host IPC mode, IPC namespace related systemControls are not supported. -+ For tasks that use the task IPC mode, IPC namespace related systemControls will apply to all containers within a task. -This parameter is not supported for Windows containers or tasks using the Fargate launch type. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-ipcmode - PrimitiveType: String UpdateType: Immutable + Type: List + ItemType: InferenceAccelerator + DuplicatesAllowed: False .PARAMETER Memory The amount in MiB of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER NetworkMode The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. The default Docker network mode is bridge. If you are using the Fargate launch type, the awsvpc network mode is required. If you are using the EC2 launch type, any network mode can be used. If the network mode is set to none, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode. @@ -81,43 +69,74 @@ Docker for Windows uses different network modes than Docker for Linux. When you For more information, see Network settings: https://docs.docker.com/engine/reference/run/#network-settings in the *Docker run reference*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-networkmode - PrimitiveType: String UpdateType: Immutable - - .PARAMETER PidMode - The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings: https://docs.docker.com/engine/reference/run/#pid-settings---pid in the *Docker run reference*. -If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security: https://docs.docker.com/engine/security/security/. -This parameter is not supported for Windows containers or tasks using the Fargate launch type. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-pidmode PrimitiveType: String - UpdateType: Immutable .PARAMETER PlacementConstraints An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate launch type for your task. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-placementconstraints - DuplicatesAllowed: False - ItemType: TaskDefinitionPlacementConstraint - Type: List UpdateType: Immutable + Type: List + ItemType: TaskDefinitionPlacementConstraint + DuplicatesAllowed: False .PARAMETER ProxyConfiguration The ProxyConfiguration property specifies the configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ecs-init package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html in the *Amazon Elastic Container Service Developer Guide*. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-proxyconfiguration - Type: ProxyConfiguration UpdateType: Immutable + Type: ProxyConfiguration .PARAMETER RequiresCompatibilities The launch type the task requires. If no value is specified, it will default to EC2. Valid values include EC2 and FARGATE. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities - DuplicatesAllowed: False + UpdateType: Immutable + Type: List PrimitiveItemType: String + DuplicatesAllowed: False + + .PARAMETER TaskRoleArn + The short name or full Amazon Resource Name ARN of the AWS Identity and Access Management IAM role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html in the *Amazon Elastic Container Service Developer Guide*. +IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see Windows IAM Roles for Tasks: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html in the *Amazon Elastic Container Service Developer Guide*. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Volumes + The list of volume definitions for the task. +If your tasks are using the Fargate launch type, the host and sourcePath parameters are not supported. +For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html in the *Amazon Elastic Container Service Developer Guide*. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes + UpdateType: Immutable Type: List + ItemType: Volume + DuplicatesAllowed: False + + .PARAMETER PidMode + The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings: https://docs.docker.com/engine/reference/run/#pid-settings---pid in the *Docker run reference*. +If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security: https://docs.docker.com/engine/security/security/. +This parameter is not supported for Windows containers or tasks using the Fargate launch type. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-pidmode UpdateType: Immutable + PrimitiveType: String + + .PARAMETER IpcMode + The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings: https://docs.docker.com/engine/reference/run/#ipc-settings---ipc in the *Docker run reference*. +If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security: https://docs.docker.com/engine/security/security/. +If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html in the *Amazon Elastic Container Service Developer Guide*. ++ For tasks that use the host IPC mode, IPC namespace related systemControls are not supported. ++ For tasks that use the task IPC mode, IPC namespace related systemControls will apply to all containers within a task. +This parameter is not supported for Windows containers or tasks using the Fargate launch type. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-ipcmode + UpdateType: Immutable + PrimitiveType: String .PARAMETER Tags The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. @@ -131,29 +150,14 @@ The following basic restrictions apply to tags: + Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-tags - DuplicatesAllowed: True - ItemType: Tag - Type: List UpdateType: Mutable + Type: List + ItemType: Tag - .PARAMETER TaskRoleArn - The short name or full Amazon Resource Name ARN of the AWS Identity and Access Management IAM role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html in the *Amazon Elastic Container Service Developer Guide*. -IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see Windows IAM Roles for Tasks: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html in the *Amazon Elastic Container Service Developer Guide*. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn + .PARAMETER TaskDefinitionStatus + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskdefinitionstatus + UpdateType: Mutable PrimitiveType: String - UpdateType: Immutable - - .PARAMETER Volumes - The list of volume definitions for the task. -If your tasks are using the Fargate launch type, the host and sourcePath parameters are not supported. -For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html in the *Amazon Elastic Container Service Developer Guide*. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes - DuplicatesAllowed: False - ItemType: Volume - Type: List - 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. @@ -219,7 +223,7 @@ For more information about volume definition parameters and defaults, see Amazon $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.ContainerDefinition" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -227,10 +231,10 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ContainerDefinitions, + $Family, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.ContainerDefinition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -238,7 +242,7 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Cpu, + $ContainerDefinitions, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -249,7 +253,7 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ExecutionRoleArn, + $Cpu, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -260,7 +264,7 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Family, + $ExecutionRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.InferenceAccelerator" @@ -282,7 +286,7 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $IpcMode, + $Memory, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -293,10 +297,10 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Memory, + $NetworkMode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.TaskDefinitionPlacementConstraint" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -304,7 +308,11 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $NetworkMode, + $PlacementConstraints, + [parameter(Mandatory = $false)] + $ProxyConfiguration, + [parameter(Mandatory = $false)] + $RequiresCompatibilities, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -315,10 +323,10 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $PidMode, + $TaskRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.TaskDefinitionPlacementConstraint" + $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.Volume" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -326,14 +334,18 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $PlacementConstraints, - [parameter(Mandatory = $false)] - $ProxyConfiguration, - [parameter(Mandatory = $false)] - $RequiresCompatibilities, - [VaporShell.Core.TransformTag()] + $Volumes, [parameter(Mandatory = $false)] - $Tags, + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $PidMode, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -344,10 +356,13 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $TaskRoleArn, + $IpcMode, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ECS.TaskDefinition.Volume" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -355,7 +370,7 @@ For more information about volume definition parameters and defaults, see Amazon $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $Volumes, + $TaskDefinitionStatus, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -443,17 +458,17 @@ For more information about volume definition parameters and defaults, see Amazon } $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name RequiresCompatibilities -Value @($RequiresCompatibilities) } - Tags { + Volumes { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) } - $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Volumes -Value @($Volumes) } - Volumes { + Tags { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) } - $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Volumes -Value @($Volumes) + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) } Default { if (!($ResourceParams["Properties"])) { diff --git a/VaporShell/Public/Resource Types/New-VSEFSAccessPoint.ps1 b/VaporShell/Public/Resource Types/New-VSEFSAccessPoint.ps1 new file mode 100644 index 000000000..30655126e --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSEFSAccessPoint.ps1 @@ -0,0 +1,224 @@ +function New-VSEFSAccessPoint { + <# + .SYNOPSIS + Adds an AWS::EFS::AccessPoint resource to the template. + + .DESCRIPTION + Adds an AWS::EFS::AccessPoint resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.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 ClientToken + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-clienttoken + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER AccessPointTags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-accesspointtags + UpdateType: Mutable + Type: List + ItemType: AccessPointTag + DuplicatesAllowed: False + + .PARAMETER FileSystemId + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-filesystemid + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER PosixUser + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-posixuser + UpdateType: Immutable + Type: PosixUser + + .PARAMETER RootDirectory + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-rootdirectory + UpdateType: Immutable + Type: RootDirectory + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.EFS.AccessPoint')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ClientToken, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.EFS.AccessPoint.AccessPointTag" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $AccessPointTags, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FileSystemId, + [parameter(Mandatory = $false)] + $PosixUser, + [parameter(Mandatory = $false)] + $RootDirectory, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::EFS::AccessPoint" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + AccessPointTags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name AccessPointTags -Value @($AccessPointTags) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.EFS.AccessPoint' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSEFSFileSystem.ps1 b/VaporShell/Public/Resource Types/New-VSEFSFileSystem.ps1 index 0c448f682..861256b24 100644 --- a/VaporShell/Public/Resource Types/New-VSEFSFileSystem.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEFSFileSystem.ps1 @@ -16,52 +16,66 @@ function New-VSEFSFileSystem { A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing AWS Key Management Service AWS KMS customer master key CMK. If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-encrypted - PrimitiveType: Boolean UpdateType: Immutable + PrimitiveType: Boolean .PARAMETER FileSystemTags A value that specifies to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a "Key":"Name","Value":"{value}" key-value pair. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags - DuplicatesAllowed: False - ItemType: ElasticFileSystemTag - Type: List UpdateType: Mutable + Type: List + ItemType: ElasticFileSystemTag + DuplicatesAllowed: False .PARAMETER KmsKeyId Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-kmskeyid - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER LifecyclePolicies A list of policies used by EFS lifecycle management to transition files to the Infrequent Access IA storage class. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-lifecyclepolicies - DuplicatesAllowed: False - ItemType: LifecyclePolicy - Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-lifecyclepolicies UpdateType: Mutable + Type: List + ItemType: LifecyclePolicy + DuplicatesAllowed: False .PARAMETER PerformanceMode The performance mode of the file system. We recommend generalPurpose performance mode for most file systems. File systems using the maxIO performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-performancemode - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ProvisionedThroughputInMibps The throughput, measured in MiB/s, that you want to provision for a file system that you're creating. Valid values are 1-1024. Required if ThroughputMode is set to provisioned. The upper limit for throughput is 1024 MiB/s. You can get this limit increased by contacting AWS Support. For more information, see Amazon EFS Limits That You Can Increase: https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits in the *Amazon EFS User Guide.* - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-provisionedthroughputinmibps - PrimitiveType: Double + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-provisionedthroughputinmibps UpdateType: Mutable + PrimitiveType: Double .PARAMETER ThroughputMode The throughput mode for the file system to be created. There are two throughput modes to choose from for your file system: bursting and provisioned. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughPutInMibps. You can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes as long as it’s been more than 24 hours since the last decrease or throughput mode change. For more, see Specifying Throughput with Provisioned Mode: https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput in the *Amazon EFS User Guide.* - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-elasticfilesystem-filesystem-throughputmode + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-throughputmode + UpdateType: Mutable PrimitiveType: String + + .PARAMETER FileSystemPolicy + + Creating an Amazon Elastic File System: https://docs.aws.amazon.com/efs/latest/ug/creating-using-fs.html + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystempolicy + UpdateType: Mutable + PrimitiveType: Json + + .PARAMETER BackupPolicy + + Creating an Amazon Elastic File System: https://docs.aws.amazon.com/efs/latest/ug/creating-using-fs.html + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-backuppolicy UpdateType: Mutable + Type: BackupPolicy .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. @@ -127,7 +141,7 @@ function New-VSEFSFileSystem { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -182,7 +196,7 @@ function New-VSEFSFileSystem { $PerformanceMode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -202,6 +216,19 @@ function New-VSEFSFileSystem { } })] $ThroughputMode, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","System.Collections.Hashtable","System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FileSystemPolicy, + [parameter(Mandatory = $false)] + $BackupPolicy, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -277,6 +304,23 @@ function New-VSEFSFileSystem { } $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name LifecyclePolicies -Value @($LifecyclePolicies) } + FileSystemPolicy { + if (($PSBoundParameters[$key]).PSObject.TypeNames -contains "System.String"){ + try { + $JSONObject = (ConvertFrom-Json -InputObject $PSBoundParameters[$key] -ErrorAction Stop) + } + catch { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "Unable to convert parameter '$key' string value to PSObject! Please use a JSON string OR provide a Hashtable or PSCustomObject instead!")) + } + } + else { + $JSONObject = ([PSCustomObject]$PSBoundParameters[$key]) + } + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $JSONObject + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSEKSNodegroup.ps1 b/VaporShell/Public/Resource Types/New-VSEKSNodegroup.ps1 index fc89db94e..ac0091de4 100644 --- a/VaporShell/Public/Resource Types/New-VSEKSNodegroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEKSNodegroup.ps1 @@ -240,7 +240,7 @@ Changing this value triggers an update of the node group if one is available. Ho $AmiType, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -264,7 +264,7 @@ Changing this value triggers an update of the node group if one is available. Ho $RemoteAccess, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSEMRCluster.ps1 b/VaporShell/Public/Resource Types/New-VSEMRCluster.ps1 index 4cc2b0d54..0b74ce112 100644 --- a/VaporShell/Public/Resource Types/New-VSEMRCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSEMRCluster.ps1 @@ -392,7 +392,7 @@ When you create clusters directly through the EMR console or API, this value is $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSElastiCacheCacheCluster.ps1 b/VaporShell/Public/Resource Types/New-VSElastiCacheCacheCluster.ps1 index 68bd29062..f3145352b 100644 --- a/VaporShell/Public/Resource Types/New-VSElastiCacheCacheCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElastiCacheCacheCluster.ps1 @@ -306,7 +306,7 @@ Use this parameter only when you are creating a cluster in an Amazon Virtual Pri $AZMode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSElastiCacheReplicationGroup.ps1 b/VaporShell/Public/Resource Types/New-VSElastiCacheReplicationGroup.ps1 index 41fd68e70..af3c91774 100644 --- a/VaporShell/Public/Resource Types/New-VSElastiCacheReplicationGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElastiCacheReplicationGroup.ps1 @@ -136,6 +136,13 @@ If you're going to launch your cluster in an Amazon VPC, you need to create a su PrimitiveType: String UpdateType: Immutable + .PARAMETER MultiAZEnabled + CreateReplicationGroup: https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html in the * Amazon ElastiCache API Reference Guide* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-multiazenabled + PrimitiveType: Boolean + UpdateType: Immutable + .PARAMETER NodeGroupConfiguration NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache ElastiCache Redis cluster node group. If you set UseOnlineResharding: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding to true, you can update NodeGroupConfiguration without interruption. When UseOnlineResharding is set to false, or is not specified, updating NodeGroupConfiguration results in replacement: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement. @@ -380,7 +387,7 @@ For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an Auth $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -402,7 +409,7 @@ For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an Auth $AuthToken, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -413,7 +420,7 @@ For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an Auth $AutoMinorVersionUpgrade, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -491,6 +498,17 @@ For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an Auth })] $KmsKeyId, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $MultiAZEnabled, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.ElastiCache.ReplicationGroup.NodeGroupConfiguration" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -655,7 +673,7 @@ For HIPAA compliance, you must specify TransitEncryptionEnabled as true, an Auth $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingLoadBalancer.ps1 b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingLoadBalancer.ps1 index ca4423be6..17a798c4d 100644 --- a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingLoadBalancer.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingLoadBalancer.ps1 @@ -239,7 +239,7 @@ Update requires replacement if you did not previously specify a subnet or if you $ConnectionSettings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2Listener.ps1 b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2Listener.ps1 index 1438117f7..9f125d9ad 100644 --- a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2Listener.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2Listener.ps1 @@ -12,6 +12,15 @@ function New-VSElasticLoadBalancingV2Listener { .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 AlpnPolicy + + Listeners: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html in the *User Guide for Network Load Balancers* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-alpnpolicy + DuplicatesAllowed: False + PrimitiveItemType: String + Type: List + UpdateType: Mutable + .PARAMETER Certificates The default SSL server certificate for a secure listener. You must provide exactly one certificate if the listener protocol is HTTPS or TLS. To create a certificate list for a secure listener, use AWS::ElasticLoadBalancingV2::ListenerCertificate: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html. @@ -133,6 +142,8 @@ For more information, see Security Policies: https://docs.aws.amazon.com/elastic [System.String] $LogicalId, [parameter(Mandatory = $false)] + $AlpnPolicy, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.ElasticLoadBalancingV2.Listener.Certificate" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -261,6 +272,12 @@ For more information, see Security Policies: https://docs.aws.amazon.com/elastic Condition { $ResourceParams.Add("Condition",$Condition) } + AlpnPolicy { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name AlpnPolicy -Value @($AlpnPolicy) + } Certificates { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2TargetGroup.ps1 b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2TargetGroup.ps1 index 9d7822501..2b46afa17 100644 --- a/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2TargetGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElasticLoadBalancingV2TargetGroup.ps1 @@ -207,7 +207,7 @@ This name must be unique per region per account, can have a maximum of 32 charac $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSElasticsearchDomain.ps1 b/VaporShell/Public/Resource Types/New-VSElasticsearchDomain.ps1 index 366d68005..a28267e4e 100644 --- a/VaporShell/Public/Resource Types/New-VSElasticsearchDomain.ps1 +++ b/VaporShell/Public/Resource Types/New-VSElasticsearchDomain.ps1 @@ -28,6 +28,11 @@ function New-VSElasticsearchDomain { Type: Map UpdateType: Mutable + .PARAMETER AdvancedSecurityOptions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedsecurityoptions + Type: AdvancedSecurityOptionsInput + UpdateType: Immutable + .PARAMETER CognitoOptions Configures Amazon ES to use Amazon Cognito authentication for Kibana. @@ -35,6 +40,11 @@ function New-VSElasticsearchDomain { Type: CognitoOptions UpdateType: Mutable + .PARAMETER DomainEndpointOptions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainendpointoptions + Type: DomainEndpointOptions + UpdateType: Mutable + .PARAMETER DomainName A name for the Amazon ES domain. For valid values, see the DomainName: https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-configuration-api.html#es-configuration-api-datatypes-domainname data type in the *Amazon Elasticsearch Service Developer Guide*. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain 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. @@ -188,8 +198,12 @@ If you set the UpgradeElasticsearchVersion: https://docs.aws.amazon.com/AWSCloud [System.Collections.Hashtable] $AdvancedOptions, [parameter(Mandatory = $false)] + $AdvancedSecurityOptions, + [parameter(Mandatory = $false)] $CognitoOptions, [parameter(Mandatory = $false)] + $DomainEndpointOptions, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSFMSPolicy.ps1 b/VaporShell/Public/Resource Types/New-VSFMSPolicy.ps1 index a76dd8837..6f54ab99b 100644 --- a/VaporShell/Public/Resource Types/New-VSFMSPolicy.ps1 +++ b/VaporShell/Public/Resource Types/New-VSFMSPolicy.ps1 @@ -202,7 +202,7 @@ After the cleanup, in-scope resources are no longer protected by web ACLs in thi $ExcludeMap, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -226,7 +226,7 @@ After the cleanup, in-scope resources are no longer protected by web ACLs in thi $PolicyName, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -272,7 +272,7 @@ After the cleanup, in-scope resources are no longer protected by web ACLs in thi $SecurityServicePolicyData, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSFSxFileSystem.ps1 b/VaporShell/Public/Resource Types/New-VSFSxFileSystem.ps1 index a65af006a..34a58616b 100644 --- a/VaporShell/Public/Resource Types/New-VSFSxFileSystem.ps1 +++ b/VaporShell/Public/Resource Types/New-VSFSxFileSystem.ps1 @@ -40,7 +40,7 @@ For Windows file systems: Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagecapacity PrimitiveType: Integer - UpdateType: Immutable + UpdateType: Mutable .PARAMETER FileSystemType The type of Amazon FSx file system, either LUSTRE or WINDOWS. diff --git a/VaporShell/Public/Resource Types/New-VSGameLiftMatchmakingConfiguration.ps1 b/VaporShell/Public/Resource Types/New-VSGameLiftMatchmakingConfiguration.ps1 index 1116e556c..92522d9c1 100644 --- a/VaporShell/Public/Resource Types/New-VSGameLiftMatchmakingConfiguration.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGameLiftMatchmakingConfiguration.ps1 @@ -279,7 +279,7 @@ function New-VSGameLiftMatchmakingConfiguration { $RequestTimeoutSeconds, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorAccelerator.ps1 b/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorAccelerator.ps1 index ee226d630..2218cdc26 100644 --- a/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorAccelerator.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorAccelerator.ps1 @@ -127,7 +127,7 @@ function New-VSGlobalAcceleratorAccelerator { $IpAddresses, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorEndpointGroup.ps1 b/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorEndpointGroup.ps1 index 83bca14ca..b5c48b741 100644 --- a/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorEndpointGroup.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGlobalAcceleratorEndpointGroup.ps1 @@ -155,7 +155,7 @@ function New-VSGlobalAcceleratorEndpointGroup { $EndpointConfigurations, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGlueJob.ps1 b/VaporShell/Public/Resource Types/New-VSGlueJob.ps1 index f2378b48d..78758c37f 100644 --- a/VaporShell/Public/Resource Types/New-VSGlueJob.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGlueJob.ps1 @@ -217,7 +217,7 @@ The value that can be allocated for MaxCapacity depends on whether you are runni $Connections, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -250,7 +250,7 @@ The value that can be allocated for MaxCapacity depends on whether you are runni $Timeout, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -366,7 +366,7 @@ The value that can be allocated for MaxCapacity depends on whether you are runni $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGlueMLTransform.ps1 b/VaporShell/Public/Resource Types/New-VSGlueMLTransform.ps1 index 2f14ebf0d..c1f9c00e0 100644 --- a/VaporShell/Public/Resource Types/New-VSGlueMLTransform.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGlueMLTransform.ps1 @@ -278,7 +278,7 @@ When the WorkerType field is set to a value other than Standard, the MaxCapacity $Name, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGlueTrigger.ps1 b/VaporShell/Public/Resource Types/New-VSGlueTrigger.ps1 index 2c2710592..7627bff00 100644 --- a/VaporShell/Public/Resource Types/New-VSGlueTrigger.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGlueTrigger.ps1 @@ -151,7 +151,7 @@ function New-VSGlueTrigger { $Type, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGuardDutyDetector.ps1 b/VaporShell/Public/Resource Types/New-VSGuardDutyDetector.ps1 index 8f3d4e6f1..137417833 100644 --- a/VaporShell/Public/Resource Types/New-VSGuardDutyDetector.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGuardDutyDetector.ps1 @@ -101,7 +101,7 @@ function New-VSGuardDutyDetector { $FindingPublishingFrequency, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGuardDutyIPSet.ps1 b/VaporShell/Public/Resource Types/New-VSGuardDutyIPSet.ps1 index f271d717e..3c7ec2941 100644 --- a/VaporShell/Public/Resource Types/New-VSGuardDutyIPSet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGuardDutyIPSet.ps1 @@ -122,7 +122,7 @@ function New-VSGuardDutyIPSet { $Format, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGuardDutyMember.ps1 b/VaporShell/Public/Resource Types/New-VSGuardDutyMember.ps1 index c83d5236a..a4652fb1c 100644 --- a/VaporShell/Public/Resource Types/New-VSGuardDutyMember.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGuardDutyMember.ps1 @@ -162,7 +162,7 @@ function New-VSGuardDutyMember { $Message, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSGuardDutyThreatIntelSet.ps1 b/VaporShell/Public/Resource Types/New-VSGuardDutyThreatIntelSet.ps1 index 0e14ec370..278cd8641 100644 --- a/VaporShell/Public/Resource Types/New-VSGuardDutyThreatIntelSet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSGuardDutyThreatIntelSet.ps1 @@ -122,7 +122,7 @@ function New-VSGuardDutyThreatIntelSet { $Format, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSImageBuilderComponent.ps1 b/VaporShell/Public/Resource Types/New-VSImageBuilderComponent.ps1 index dd48bb695..9fd5360eb 100644 --- a/VaporShell/Public/Resource Types/New-VSImageBuilderComponent.ps1 +++ b/VaporShell/Public/Resource Types/New-VSImageBuilderComponent.ps1 @@ -74,6 +74,12 @@ function New-VSImageBuilderComponent { UpdateType: Immutable PrimitiveType: String + .PARAMETER SupportedOsVersions + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-supportedosversions + UpdateType: Immutable + Type: List + PrimitiveItemType: String + .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. @@ -227,6 +233,8 @@ function New-VSImageBuilderComponent { } })] $Uri, + [parameter(Mandatory = $false)] + $SupportedOsVersions, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -290,6 +298,12 @@ function New-VSImageBuilderComponent { Condition { $ResourceParams.Add("Condition",$Condition) } + SupportedOsVersions { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name SupportedOsVersions -Value @($SupportedOsVersions) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSImageBuilderImage.ps1 b/VaporShell/Public/Resource Types/New-VSImageBuilderImage.ps1 index e1383c504..df3fbd910 100644 --- a/VaporShell/Public/Resource Types/New-VSImageBuilderImage.ps1 +++ b/VaporShell/Public/Resource Types/New-VSImageBuilderImage.ps1 @@ -32,6 +32,11 @@ function New-VSImageBuilderImage { UpdateType: Immutable PrimitiveType: String + .PARAMETER EnhancedImageMetadataEnabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-enhancedimagemetadataenabled + UpdateType: Immutable + PrimitiveType: Boolean + .PARAMETER Tags Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-tags UpdateType: Immutable @@ -136,6 +141,17 @@ function New-VSImageBuilderImage { })] $InfrastructureConfigurationArn, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnhancedImageMetadataEnabled, + [parameter(Mandatory = $false)] [System.Collections.Hashtable] $Tags, [ValidateSet("Delete","Retain","Snapshot")] diff --git a/VaporShell/Public/Resource Types/New-VSImageBuilderImagePipeline.ps1 b/VaporShell/Public/Resource Types/New-VSImageBuilderImagePipeline.ps1 index 89e8f7aec..d981b3e82 100644 --- a/VaporShell/Public/Resource Types/New-VSImageBuilderImagePipeline.ps1 +++ b/VaporShell/Public/Resource Types/New-VSImageBuilderImagePipeline.ps1 @@ -68,6 +68,13 @@ function New-VSImageBuilderImagePipeline { UpdateType: Mutable PrimitiveType: String + .PARAMETER EnhancedImageMetadataEnabled + Returns the Amazon Resource Name ARN of the image pipeline. For example, arn:aws:imagebuilder:us-west-2:123456789012:image-pipeline/mywindows2016pipeline. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-enhancedimagemetadataenabled + UpdateType: Mutable + PrimitiveType: Boolean + .PARAMETER Tags The tags of this image pipeline. @@ -209,6 +216,17 @@ function New-VSImageBuilderImagePipeline { })] $InfrastructureConfigurationArn, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EnhancedImageMetadataEnabled, + [parameter(Mandatory = $false)] [System.Collections.Hashtable] $Tags, [ValidateSet("Delete","Retain","Snapshot")] diff --git a/VaporShell/Public/Resource Types/New-VSImageBuilderImageRecipe.ps1 b/VaporShell/Public/Resource Types/New-VSImageBuilderImageRecipe.ps1 index bdb6ff39a..9093946a5 100644 --- a/VaporShell/Public/Resource Types/New-VSImageBuilderImageRecipe.ps1 +++ b/VaporShell/Public/Resource Types/New-VSImageBuilderImageRecipe.ps1 @@ -56,6 +56,13 @@ function New-VSImageBuilderImageRecipe { UpdateType: Immutable PrimitiveType: String + .PARAMETER WorkingDirectory + Returns the Amazon Resource Name ARN of the image recipe. For example, arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/mybasicrecipe/2019.12.03. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-workingdirectory + UpdateType: Immutable + PrimitiveType: String + .PARAMETER Tags The tags of the image recipe. @@ -193,6 +200,17 @@ function New-VSImageBuilderImageRecipe { })] $ParentImage, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $WorkingDirectory, + [parameter(Mandatory = $false)] [System.Collections.Hashtable] $Tags, [ValidateSet("Delete","Retain","Snapshot")] diff --git a/VaporShell/Public/Resource Types/New-VSImageBuilderInfrastructureConfiguration.ps1 b/VaporShell/Public/Resource Types/New-VSImageBuilderInfrastructureConfiguration.ps1 index eb5ca348e..da627fe87 100644 --- a/VaporShell/Public/Resource Types/New-VSImageBuilderInfrastructureConfiguration.ps1 +++ b/VaporShell/Public/Resource Types/New-VSImageBuilderInfrastructureConfiguration.ps1 @@ -85,6 +85,14 @@ function New-VSImageBuilderInfrastructureConfiguration { UpdateType: Mutable PrimitiveType: String + .PARAMETER ResourceTags + Returns the Amazon Resource Name ARN of the infrastructure configuration. The following pattern is applied: ^arn:aws^:]*:imagebuilder:^:]+:?:d{12}|aws:?:image-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline/a-z0-9-_]+?:/?:?:x|d+.?:x|d+.?:x|d+?:/d+??$. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-resourcetags + UpdateType: Mutable + Type: Map + PrimitiveItemType: String + .PARAMETER Tags The tags of the infrastructure configuration. @@ -216,7 +224,7 @@ function New-VSImageBuilderInfrastructureConfiguration { $KeyPair, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -249,6 +257,9 @@ function New-VSImageBuilderInfrastructureConfiguration { $SnsTopicArn, [parameter(Mandatory = $false)] [System.Collections.Hashtable] + $ResourceTags, + [parameter(Mandatory = $false)] + [System.Collections.Hashtable] $Tags, [ValidateSet("Delete","Retain","Snapshot")] [System.String] diff --git a/VaporShell/Public/Resource Types/New-VSIoT1ClickDevice.ps1 b/VaporShell/Public/Resource Types/New-VSIoT1ClickDevice.ps1 index 42182d27c..aa4e1b796 100644 --- a/VaporShell/Public/Resource Types/New-VSIoT1ClickDevice.ps1 +++ b/VaporShell/Public/Resource Types/New-VSIoT1ClickDevice.ps1 @@ -101,7 +101,7 @@ function New-VSIoT1ClickDevice { $DeviceId, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSIoTProvisioningTemplate.ps1 b/VaporShell/Public/Resource Types/New-VSIoTProvisioningTemplate.ps1 new file mode 100644 index 000000000..3bf4b80ad --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSIoTProvisioningTemplate.ps1 @@ -0,0 +1,264 @@ +function New-VSIoTProvisioningTemplate { + <# + .SYNOPSIS + Adds an AWS::IoT::ProvisioningTemplate resource to the template. + + .DESCRIPTION + Adds an AWS::IoT::ProvisioningTemplate resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.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 TemplateName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatename + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER Description + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-description + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Enabled + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-enabled + UpdateType: Mutable + PrimitiveType: Boolean + + .PARAMETER ProvisioningRoleArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-provisioningrolearn + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER TemplateBody + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatebody + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER PreProvisioningHook + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-preprovisioninghook + UpdateType: Mutable + Type: ProvisioningHook + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-tags + UpdateType: Mutable + Type: List + ItemType: Json + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.IoT.ProvisioningTemplate')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TemplateName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Description, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Enabled, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ProvisioningRoleArn, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TemplateBody, + [parameter(Mandatory = $false)] + $PreProvisioningHook, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.IoT.ProvisioningTemplate.Json" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Tags, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::IoT::ProvisioningTemplate" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.IoT.ProvisioningTemplate' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSIoTThingsGraphFlowTemplate.ps1 b/VaporShell/Public/Resource Types/New-VSIoTThingsGraphFlowTemplate.ps1 index a960f8234..107591925 100644 --- a/VaporShell/Public/Resource Types/New-VSIoTThingsGraphFlowTemplate.ps1 +++ b/VaporShell/Public/Resource Types/New-VSIoTThingsGraphFlowTemplate.ps1 @@ -90,7 +90,7 @@ function New-VSIoTThingsGraphFlowTemplate { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Double","Vaporshell.Function" + $allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSKMSKey.ps1 b/VaporShell/Public/Resource Types/New-VSKMSKey.ps1 index 973c9699e..ce4d7f38f 100644 --- a/VaporShell/Public/Resource Types/New-VSKMSKey.ps1 +++ b/VaporShell/Public/Resource Types/New-VSKMSKey.ps1 @@ -158,7 +158,7 @@ For more information, see Tag: https://docs.aws.amazon.com/AWSCloudFormation/lat $Description, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -169,7 +169,7 @@ For more information, see Tag: https://docs.aws.amazon.com/AWSCloudFormation/lat $EnableKeyRotation, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSKinesisFirehoseDeliveryStream.ps1 b/VaporShell/Public/Resource Types/New-VSKinesisFirehoseDeliveryStream.ps1 index 04bfeed6f..ec154ae97 100644 --- a/VaporShell/Public/Resource Types/New-VSKinesisFirehoseDeliveryStream.ps1 +++ b/VaporShell/Public/Resource Types/New-VSKinesisFirehoseDeliveryStream.ps1 @@ -16,8 +16,8 @@ function New-VSKinesisFirehoseDeliveryStream { The name of the delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER DeliveryStreamType The delivery stream type. This can be one of the following values: @@ -25,8 +25,8 @@ function New-VSKinesisFirehoseDeliveryStream { + KinesisStreamAsSource: The delivery stream uses a Kinesis data stream as a source. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamtype - PrimitiveType: String UpdateType: Immutable + PrimitiveType: String .PARAMETER ElasticsearchDestinationConfiguration An Amazon ES destination for the delivery stream. @@ -34,8 +34,8 @@ Conditional. You must specify only one destination configuration. If you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires some interruptions: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration - Type: ElasticsearchDestinationConfiguration UpdateType: Mutable + Type: ElasticsearchDestinationConfiguration .PARAMETER ExtendedS3DestinationConfiguration An Amazon S3 destination for the delivery stream. @@ -43,15 +43,15 @@ Conditional. You must specify only one destination configuration. If you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires some interruptions: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration - Type: ExtendedS3DestinationConfiguration UpdateType: Mutable + Type: ExtendedS3DestinationConfiguration .PARAMETER KinesisStreamSourceConfiguration When a Kinesis stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html containing the Kinesis stream ARN and the role ARN for the source stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration - Type: KinesisStreamSourceConfiguration UpdateType: Mutable + Type: KinesisStreamSourceConfiguration .PARAMETER RedshiftDestinationConfiguration An Amazon Redshift destination for the delivery stream. @@ -59,8 +59,8 @@ Conditional. You must specify only one destination configuration. If you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires some interruptions: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration - Type: RedshiftDestinationConfiguration UpdateType: Mutable + Type: RedshiftDestinationConfiguration .PARAMETER S3DestinationConfiguration The S3DestinationConfiguration property type specifies an Amazon Simple Storage Service Amazon S3 destination to which Amazon Kinesis Data Firehose Kinesis Data Firehose delivers data. @@ -68,15 +68,15 @@ Conditional. You must specify only one destination configuration. If you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires some interruptions: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration - Type: S3DestinationConfiguration UpdateType: Mutable + Type: S3DestinationConfiguration .PARAMETER SplunkDestinationConfiguration The configuration of a destination in Splunk for the delivery stream. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration - Type: SplunkDestinationConfiguration UpdateType: Mutable + Type: SplunkDestinationConfiguration .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. diff --git a/VaporShell/Public/Resource Types/New-VSLakeFormationResource.ps1 b/VaporShell/Public/Resource Types/New-VSLakeFormationResource.ps1 index 002d33e7e..a5f1a7e92 100644 --- a/VaporShell/Public/Resource Types/New-VSLakeFormationResource.ps1 +++ b/VaporShell/Public/Resource Types/New-VSLakeFormationResource.ps1 @@ -108,7 +108,7 @@ function New-VSLakeFormationResource { $ResourceArn, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSLambdaEventSourceMapping.ps1 b/VaporShell/Public/Resource Types/New-VSLambdaEventSourceMapping.ps1 index 9b938321e..81d355e9b 100644 --- a/VaporShell/Public/Resource Types/New-VSLambdaEventSourceMapping.ps1 +++ b/VaporShell/Public/Resource Types/New-VSLambdaEventSourceMapping.ps1 @@ -186,7 +186,7 @@ The length constraint applies only to the full ARN. If you specify only the func $BatchSize, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -199,7 +199,7 @@ The length constraint applies only to the full ARN. If you specify only the func $DestinationConfig, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSLambdaFunction.ps1 b/VaporShell/Public/Resource Types/New-VSLambdaFunction.ps1 index 2f70d38a2..8ae2298a5 100644 --- a/VaporShell/Public/Resource Types/New-VSLambdaFunction.ps1 +++ b/VaporShell/Public/Resource Types/New-VSLambdaFunction.ps1 @@ -40,6 +40,13 @@ function New-VSLambdaFunction { Type: Environment UpdateType: Mutable + .PARAMETER FileSystemConfigs + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs + DuplicatesAllowed: False + ItemType: FileSystemConfig + Type: List + UpdateType: Mutable + .PARAMETER FunctionName The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. 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. @@ -209,6 +216,17 @@ If you specify a name, you cannot perform updates that require replacement of th [parameter(Mandatory = $false)] $Environment, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.Lambda.Function.FileSystemConfig" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FileSystemConfigs, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -368,6 +386,12 @@ If you specify a name, you cannot perform updates that require replacement of th Condition { $ResourceParams.Add("Condition",$Condition) } + FileSystemConfigs { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name FileSystemConfigs -Value @($FileSystemConfigs) + } Layers { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSMSKCluster.ps1 b/VaporShell/Public/Resource Types/New-VSMSKCluster.ps1 index d39a04c42..90b7f90d4 100644 --- a/VaporShell/Public/Resource Types/New-VSMSKCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSMSKCluster.ps1 @@ -31,7 +31,7 @@ function New-VSMSKCluster { Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-kafkaversion PrimitiveType: String - UpdateType: Immutable + UpdateType: Mutable .PARAMETER NumberOfBrokerNodes The number of broker nodes you want in the Amazon MSK cluster. You can submit an update to increase the number of broker nodes in a cluster. @@ -87,7 +87,7 @@ function New-VSMSKCluster { Type: ConfigurationInfo Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-configurationinfo - UpdateType: Immutable + 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. diff --git a/VaporShell/Public/Resource Types/New-VSMediaStoreContainer.ps1 b/VaporShell/Public/Resource Types/New-VSMediaStoreContainer.ps1 index dbf16cdfa..80b380800 100644 --- a/VaporShell/Public/Resource Types/New-VSMediaStoreContainer.ps1 +++ b/VaporShell/Public/Resource Types/New-VSMediaStoreContainer.ps1 @@ -179,7 +179,7 @@ For information about how to construct an object lifecycle policy, see Component $LifecyclePolicy, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSNeptuneDBCluster.ps1 b/VaporShell/Public/Resource Types/New-VSNeptuneDBCluster.ps1 index 369d2ac39..7d0684c62 100644 --- a/VaporShell/Public/Resource Types/New-VSNeptuneDBCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSNeptuneDBCluster.ps1 @@ -242,7 +242,7 @@ An update may require some interruption. See ModifyDBInstance: https://docs.aws. $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -332,7 +332,7 @@ An update may require some interruption. See ModifyDBInstance: https://docs.aws. $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -354,7 +354,7 @@ An update may require some interruption. See ModifyDBInstance: https://docs.aws. $DBSubnetGroupName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -376,7 +376,7 @@ An update may require some interruption. See ModifyDBInstance: https://docs.aws. $PreferredBackupWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSNeptuneDBInstance.ps1 b/VaporShell/Public/Resource Types/New-VSNeptuneDBInstance.ps1 index 6241d2f69..5c1322236 100644 --- a/VaporShell/Public/Resource Types/New-VSNeptuneDBInstance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSNeptuneDBInstance.ps1 @@ -208,7 +208,7 @@ AWS::Neptune::DBCluster does support restoring from snapshots. $DBInstanceClass, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -252,7 +252,7 @@ AWS::Neptune::DBCluster does support restoring from snapshots. $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksApp.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksApp.ps1 index 02c3221e6..c0d6a23e8 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksApp.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksApp.ps1 @@ -201,7 +201,7 @@ If you have specified one or more environment variables, you cannot modify the s $Domains, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksCMServer.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksCMServer.ps1 index f1e80c165..0766f030d 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksCMServer.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksCMServer.ps1 @@ -287,7 +287,7 @@ For more information about supported Amazon EC2 platforms, see Supported Platfor $ServiceRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -331,7 +331,7 @@ For more information about supported Amazon EC2 platforms, see Supported Platfor $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksInstance.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksInstance.ps1 index 8c7fbeba6..8e94aa07e 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksInstance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksInstance.ps1 @@ -312,7 +312,7 @@ The default option is the current Amazon Linux version. If you set this paramete $BlockDeviceMappings, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -336,7 +336,7 @@ The default option is the current Amazon Linux version. If you set this paramete $Hostname, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksLayer.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksLayer.ps1 index ae4b71e0b..7c25e890d 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksLayer.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksLayer.ps1 @@ -231,7 +231,7 @@ The built-in layers' short names are defined by AWS OpsWorks Stacks. For more in $Attributes, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -242,7 +242,7 @@ The built-in layers' short names are defined by AWS OpsWorks Stacks. For more in $AutoAssignElasticIps, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -279,7 +279,7 @@ The built-in layers' short names are defined by AWS OpsWorks Stacks. For more in $CustomSecurityGroupIds, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -290,7 +290,7 @@ The built-in layers' short names are defined by AWS OpsWorks Stacks. For more in $EnableAutoHealing, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -354,7 +354,7 @@ The built-in layers' short names are defined by AWS OpsWorks Stacks. For more in $Type, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksStack.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksStack.ps1 index 5e624bf1b..d20b71dc3 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksStack.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksStack.ps1 @@ -325,7 +325,7 @@ For more information about how to use AWS OpsWorks Stacks with a VPC, see Runnin $CloneAppIds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -497,7 +497,7 @@ For more information about how to use AWS OpsWorks Stacks with a VPC, see Runnin $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -508,7 +508,7 @@ For more information about how to use AWS OpsWorks Stacks with a VPC, see Runnin $UseCustomCookbooks, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSOpsWorksUserProfile.ps1 b/VaporShell/Public/Resource Types/New-VSOpsWorksUserProfile.ps1 index 6f84f164e..0925d80b2 100644 --- a/VaporShell/Public/Resource Types/New-VSOpsWorksUserProfile.ps1 +++ b/VaporShell/Public/Resource Types/New-VSOpsWorksUserProfile.ps1 @@ -104,7 +104,7 @@ function New-VSOpsWorksUserProfile { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointADMChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointADMChannel.ps1 index 9fc9039b4..c0a670181 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointADMChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointADMChannel.ps1 @@ -117,7 +117,7 @@ The AWS::Pinpoint::ADMChannel resource defines the status and authentication set $ClientSecret, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointAPNSChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointAPNSChannel.ps1 index fb548b970..700543903 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointAPNSChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointAPNSChannel.ps1 @@ -163,7 +163,7 @@ The AWS::Pinpoint::APNSChannel resource defines the status and authentication se $PrivateKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointAPNSSandboxChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointAPNSSandboxChannel.ps1 index 357ee572d..d517b62e5 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointAPNSSandboxChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointAPNSSandboxChannel.ps1 @@ -163,7 +163,7 @@ The AWS::Pinpoint::APNSSandboxChannel resource defines the status and authentica $PrivateKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipChannel.ps1 index 4b1d57dc0..f848e0052 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipChannel.ps1 @@ -163,7 +163,7 @@ The AWS::Pinpoint::APNSVoipChannel resource defines the status and authenticatio $PrivateKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipSandboxChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipSandboxChannel.ps1 index 1630fc29d..32cd89f97 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipSandboxChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointAPNSVoipSandboxChannel.ps1 @@ -163,7 +163,7 @@ The AWS::Pinpoint::APNSVoipSandboxChannel resource defines the status and authen $PrivateKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointApplicationSettings.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointApplicationSettings.ps1 index 5bf097a3c..8e15ccac1 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointApplicationSettings.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointApplicationSettings.ps1 @@ -133,7 +133,7 @@ You can override the default quiet time settings for a specific campaign or jour $CampaignHook, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointBaiduChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointBaiduChannel.ps1 index 669f1ee60..9a15e78a9 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointBaiduChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointBaiduChannel.ps1 @@ -128,7 +128,7 @@ The AWS::Pinpoint::BaiduChannel resource defines the status and authentication s $ApiKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointCampaign.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointCampaign.ps1 index d2154396a..a1ecf2117 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointCampaign.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointCampaign.ps1 @@ -204,7 +204,7 @@ function New-VSPinpointCampaign { $SegmentId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointEmailChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointEmailChannel.ps1 index f42278c75..60e402648 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointEmailChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointEmailChannel.ps1 @@ -142,7 +142,7 @@ The AWS::Pinpoint::EmailChannel resource defines the status, identity, and other $FromAddress, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointEmailIdentity.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointEmailIdentity.ps1 index 7d015eae8..1afbd5e5a 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointEmailIdentity.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointEmailIdentity.ps1 @@ -123,7 +123,7 @@ If the value is true, then the messages that you send from the domain are signed $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -134,7 +134,7 @@ If the value is true, then the messages that you send from the domain are signed $FeedbackForwardingEnabled, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointGCMChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointGCMChannel.ps1 index 8a7217bee..21989be73 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointGCMChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointGCMChannel.ps1 @@ -110,7 +110,7 @@ The AWS::Pinpoint::GCMChannel resource defines the status and authentication set $ApiKey, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointSMSChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointSMSChannel.ps1 index 3eeb4b7a6..ef21e254e 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointSMSChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointSMSChannel.ps1 @@ -119,7 +119,7 @@ SenderIDs are only supported in certain countries and regions. For more informat $ShortCode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSPinpointVoiceChannel.ps1 b/VaporShell/Public/Resource Types/New-VSPinpointVoiceChannel.ps1 index e98516f22..152711854 100644 --- a/VaporShell/Public/Resource Types/New-VSPinpointVoiceChannel.ps1 +++ b/VaporShell/Public/Resource Types/New-VSPinpointVoiceChannel.ps1 @@ -92,7 +92,7 @@ The AWS::Pinpoint::VoiceChannel resource defines the status and other settings o $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSQLDBLedger.ps1 b/VaporShell/Public/Resource Types/New-VSQLDBLedger.ps1 index 49ad9060e..bcaf49a1a 100644 --- a/VaporShell/Public/Resource Types/New-VSQLDBLedger.ps1 +++ b/VaporShell/Public/Resource Types/New-VSQLDBLedger.ps1 @@ -120,7 +120,7 @@ For more information, see Tag: https://docs.aws.amazon.com/AWSCloudFormation/lat $PermissionsMode, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSQLDBStream.ps1 b/VaporShell/Public/Resource Types/New-VSQLDBStream.ps1 new file mode 100644 index 000000000..6929f016c --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSQLDBStream.ps1 @@ -0,0 +1,257 @@ +function New-VSQLDBStream { + <# + .SYNOPSIS + Adds an AWS::QLDB::Stream resource to the template. + + .DESCRIPTION + Adds an AWS::QLDB::Stream resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.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 LedgerName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-ledgername + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER StreamName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-streamname + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER RoleArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-rolearn + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER InclusiveStartTime + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-inclusivestarttime + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER ExclusiveEndTime + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-exclusiveendtime + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER KinesisConfiguration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-kinesisconfiguration + UpdateType: Immutable + Type: KinesisConfiguration + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html#cfn-qldb-stream-tags + UpdateType: Mutable + Type: List + ItemType: Tag + DuplicatesAllowed: False + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.QLDB.Stream')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $LedgerName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $StreamName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleArn, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $InclusiveStartTime, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ExclusiveEndTime, + [parameter(Mandatory = $true)] + $KinesisConfiguration, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::QLDB::Stream" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.QLDB.Stream' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSRAMResourceShare.ps1 b/VaporShell/Public/Resource Types/New-VSRAMResourceShare.ps1 index 671a077aa..be421b024 100644 --- a/VaporShell/Public/Resource Types/New-VSRAMResourceShare.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRAMResourceShare.ps1 @@ -116,7 +116,7 @@ function New-VSRAMResourceShare { $Principals, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSRDSDBCluster.ps1 b/VaporShell/Public/Resource Types/New-VSRDSDBCluster.ps1 index eb960c3ff..e5a36228f 100644 --- a/VaporShell/Public/Resource Types/New-VSRDSDBCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRDSDBCluster.ps1 @@ -435,7 +435,7 @@ If you specify the KmsKeyId property, then you must enable encryption. $DatabaseName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -448,7 +448,7 @@ If you specify the KmsKeyId property, then you must enable encryption. $EnableCloudwatchLogsExports, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -459,7 +459,7 @@ If you specify the KmsKeyId property, then you must enable encryption. $EnableHttpEndpoint, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -626,7 +626,7 @@ If you specify the KmsKeyId property, then you must enable encryption. $SourceRegion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -640,7 +640,7 @@ If you specify the KmsKeyId property, then you must enable encryption. $Tags, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSRDSDBInstance.ps1 b/VaporShell/Public/Resource Types/New-VSRDSDBInstance.ps1 index 6b7843f9b..c3f420213 100644 --- a/VaporShell/Public/Resource Types/New-VSRDSDBInstance.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRDSDBInstance.ps1 @@ -435,7 +435,7 @@ If MonitoringInterval is set to a value other than 0, then you must supply a Mon Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-multiaz PrimitiveType: Boolean - UpdateType: Mutable + UpdateType: Conditional .PARAMETER OptionGroupName Indicates that the DB Instance should be associated with the specified option group. @@ -675,7 +675,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $AllocatedStorage, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -697,7 +697,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $AssociatedRoles, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -752,7 +752,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $CharacterSetName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -842,7 +842,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $DBSubnetGroupName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -853,7 +853,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $DeleteAutomatedBackups, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -888,7 +888,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $EnableCloudwatchLogsExports, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -899,7 +899,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $EnableIAMDatabaseAuthentication, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -1020,7 +1020,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $MonitoringRoleArn, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -1119,7 +1119,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $PromotionTier, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -1152,7 +1152,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $SourceRegion, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -1188,7 +1188,7 @@ To avoid this situation, migrate your DB instance to using VPC security groups o $Timezone, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSRDSDBProxy.ps1 b/VaporShell/Public/Resource Types/New-VSRDSDBProxy.ps1 new file mode 100644 index 000000000..e93619845 --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSRDSDBProxy.ps1 @@ -0,0 +1,324 @@ +function New-VSRDSDBProxy { + <# + .SYNOPSIS + Adds an AWS::RDS::DBProxy resource to the template. + + .DESCRIPTION + Adds an AWS::RDS::DBProxy resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.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 Auth + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-auth + UpdateType: Mutable + Type: List + ItemType: AuthFormat + + .PARAMETER DBProxyName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-dbproxyname + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER DebugLogging + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-debuglogging + UpdateType: Mutable + PrimitiveType: Boolean + + .PARAMETER EngineFamily + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-enginefamily + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER IdleClientTimeout + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-idleclienttimeout + UpdateType: Mutable + PrimitiveType: Integer + + .PARAMETER RequireTLS + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-requiretls + UpdateType: Mutable + PrimitiveType: Boolean + + .PARAMETER RoleArn + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-rolearn + UpdateType: Mutable + PrimitiveType: String + + .PARAMETER Tags + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-tags + UpdateType: Mutable + Type: List + ItemType: TagFormat + + .PARAMETER VpcSecurityGroupIds + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsecuritygroupids + UpdateType: Mutable + Type: List + PrimitiveItemType: String + + .PARAMETER VpcSubnetIds + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsubnetids + UpdateType: Immutable + Type: List + PrimitiveItemType: String + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.RDS.DBProxy')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.RDS.DBProxy.AuthFormat" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Auth, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DBProxyName, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DebugLogging, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $EngineFamily, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $IdleClientTimeout, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RequireTLS, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $RoleArn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.RDS.DBProxy.TagFormat" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Tags, + [parameter(Mandatory = $false)] + $VpcSecurityGroupIds, + [parameter(Mandatory = $true)] + $VpcSubnetIds, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::RDS::DBProxy" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + Auth { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Auth -Value @($Auth) + } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } + VpcSecurityGroupIds { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name VpcSecurityGroupIds -Value @($VpcSecurityGroupIds) + } + VpcSubnetIds { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name VpcSubnetIds -Value @($VpcSubnetIds) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.RDS.DBProxy' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSRDSDBProxyTargetGroup.ps1 b/VaporShell/Public/Resource Types/New-VSRDSDBProxyTargetGroup.ps1 new file mode 100644 index 000000000..db4583861 --- /dev/null +++ b/VaporShell/Public/Resource Types/New-VSRDSDBProxyTargetGroup.ps1 @@ -0,0 +1,221 @@ +function New-VSRDSDBProxyTargetGroup { + <# + .SYNOPSIS + Adds an AWS::RDS::DBProxyTargetGroup resource to the template. + + .DESCRIPTION + Adds an AWS::RDS::DBProxyTargetGroup resource to the template. + + .LINK + http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.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 DBProxyName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbproxyname + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER TargetGroupName + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-targetgroupname + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER ConnectionPoolConfigurationInfo + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-connectionpoolconfigurationinfo + UpdateType: Mutable + Type: ConnectionPoolConfigurationInfoFormat + + .PARAMETER DBInstanceIdentifiers + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbinstanceidentifiers + UpdateType: Mutable + Type: List + PrimitiveItemType: String + + .PARAMETER DBClusterIdentifiers + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html#cfn-rds-dbproxytargetgroup-dbclusteridentifiers + UpdateType: Mutable + Type: List + PrimitiveItemType: String + + .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. + + You must use a PSCustomObject containing key/value pairs here. 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 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('Vaporshell.Resource.RDS.DBProxyTargetGroup')] + [cmdletbinding()] + Param + ( + [parameter(Mandatory = $true,Position = 0)] + [ValidateScript( { + if ($_ -match "^[a-zA-Z0-9]*$") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) + } + })] + [System.String] + $LogicalId, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $DBProxyName, + [parameter(Mandatory = $true)] + [ValidateScript( { + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $TargetGroupName, + [parameter(Mandatory = $false)] + $ConnectionPoolConfigurationInfo, + [parameter(Mandatory = $false)] + $DBInstanceIdentifiers, + [parameter(Mandatory = $false)] + $DBClusterIdentifiers, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $DeletionPolicy, + [ValidateSet("Delete","Retain","Snapshot")] + [System.String] + $UpdateReplacePolicy, + [parameter(Mandatory = $false)] + [System.String[]] + $DependsOn, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Management.Automation.PSCustomObject" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "The UpdatePolicy parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $Metadata, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "Vaporshell.Resource.UpdatePolicy" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $UpdatePolicy, + [parameter(Mandatory = $false)] + $Condition + ) + Begin { + $ResourceParams = @{ + LogicalId = $LogicalId + Type = "AWS::RDS::DBProxyTargetGroup" + } + $commonParams = @('Verbose','Debug','ErrorAction','WarningAction','InformationAction','ErrorVariable','WarningVariable','InformationVariable','OutVariable','OutBuffer','PipelineVariable') + } + Process { + foreach ($key in $PSBoundParameters.Keys | Where-Object {$commonParams -notcontains $_}) { + switch ($key) { + LogicalId {} + DeletionPolicy { + $ResourceParams.Add("DeletionPolicy",$DeletionPolicy) + } + UpdateReplacePolicy { + $ResourceParams.Add("UpdateReplacePolicy",$UpdateReplacePolicy) + } + DependsOn { + $ResourceParams.Add("DependsOn",$DependsOn) + } + Metadata { + $ResourceParams.Add("Metadata",$Metadata) + } + UpdatePolicy { + $ResourceParams.Add("UpdatePolicy",$UpdatePolicy) + } + Condition { + $ResourceParams.Add("Condition",$Condition) + } + DBInstanceIdentifiers { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name DBInstanceIdentifiers -Value @($DBInstanceIdentifiers) + } + DBClusterIdentifiers { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name DBClusterIdentifiers -Value @($DBClusterIdentifiers) + } + Default { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name $key -Value $PSBoundParameters[$key] + } + } + } + } + End { + $obj = New-VaporResource @ResourceParams + $obj | Add-ObjectDetail -TypeName 'Vaporshell.Resource.RDS.DBProxyTargetGroup' + Write-Verbose "Resulting JSON from $($MyInvocation.MyCommand): `n`n$(@{$obj.LogicalId = $obj.Props} | ConvertTo-Json -Depth 5)`n" + } +} diff --git a/VaporShell/Public/Resource Types/New-VSRDSEventSubscription.ps1 b/VaporShell/Public/Resource Types/New-VSRDSEventSubscription.ps1 index 85b53c1d2..26504aa15 100644 --- a/VaporShell/Public/Resource Types/New-VSRDSEventSubscription.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRDSEventSubscription.ps1 @@ -122,7 +122,7 @@ Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSRedshiftCluster.ps1 b/VaporShell/Public/Resource Types/New-VSRedshiftCluster.ps1 index fcbe65a3b..7fa0eaa59 100644 --- a/VaporShell/Public/Resource Types/New-VSRedshiftCluster.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRedshiftCluster.ps1 @@ -352,7 +352,7 @@ Default: The default VPC security group is associated with the cluster. $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -464,7 +464,7 @@ Default: The default VPC security group is associated with the cluster. $ElasticIp, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -589,7 +589,7 @@ Default: The default VPC security group is associated with the cluster. $PreferredMaintenanceWindow, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSRoute53HealthCheck.ps1 b/VaporShell/Public/Resource Types/New-VSRoute53HealthCheck.ps1 index 99aa151ae..97ed52789 100644 --- a/VaporShell/Public/Resource Types/New-VSRoute53HealthCheck.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRoute53HealthCheck.ps1 @@ -33,7 +33,7 @@ You can associate health checks with failover records in a private hosted zone. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html#cfn-route53-healthcheck-healthcheckconfig Type: HealthCheckConfig - UpdateType: Mutable + UpdateType: Conditional .PARAMETER HealthCheckTags The HealthCheckTags property describes key-value pairs that are associated with an AWS::Route53::HealthCheck resource. diff --git a/VaporShell/Public/Resource Types/New-VSRoute53RecordSet.ps1 b/VaporShell/Public/Resource Types/New-VSRoute53RecordSet.ps1 index 17882dac6..2aaf6d606 100644 --- a/VaporShell/Public/Resource Types/New-VSRoute53RecordSet.ps1 +++ b/VaporShell/Public/Resource Types/New-VSRoute53RecordSet.ps1 @@ -356,7 +356,7 @@ The effect of setting Weight to 0 is different when you associate health checks $HostedZoneName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSS3Bucket.ps1 b/VaporShell/Public/Resource Types/New-VSS3Bucket.ps1 index d42320656..1753c8545 100644 --- a/VaporShell/Public/Resource Types/New-VSS3Bucket.ps1 +++ b/VaporShell/Public/Resource Types/New-VSS3Bucket.ps1 @@ -291,7 +291,7 @@ Amazon S3 can store replicated objects in only one destination bucket. The desti $ObjectLockConfiguration, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSSNSSubscription.ps1 b/VaporShell/Public/Resource Types/New-VSSNSSubscription.ps1 index f4a590aa7..2d9384350 100644 --- a/VaporShell/Public/Resource Types/New-VSSNSSubscription.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSNSSubscription.ps1 @@ -180,7 +180,7 @@ If you perform an update operation that only updates the Region property of a AW $Protocol, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSSNSTopic.ps1 b/VaporShell/Public/Resource Types/New-VSSNSTopic.ps1 index 7331190d1..231279e4c 100644 --- a/VaporShell/Public/Resource Types/New-VSSNSTopic.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSNSTopic.ps1 @@ -16,6 +16,13 @@ One user can create a maximum of 100,000 topics. .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 ContentBasedDeduplication + + Using an AWS CloudFormation Template to Create a Topic that Sends Messages to Amazon SQS Queues: https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.cloudformation.html in the *Amazon Simple Notification Service Developer Guide* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-contentbaseddeduplication + PrimitiveType: Boolean + UpdateType: Mutable + .PARAMETER DisplayName The display name to use for an Amazon SNS topic with SMS subscriptions. @@ -23,6 +30,13 @@ One user can create a maximum of 100,000 topics. PrimitiveType: String UpdateType: Mutable + .PARAMETER FifoTopic + + Using an AWS CloudFormation Template to Create a Topic that Sends Messages to Amazon SQS Queues: https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.cloudformation.html in the *Amazon Simple Notification Service Developer Guide* + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-fifotopic + PrimitiveType: Boolean + UpdateType: Immutable + .PARAMETER KmsMasterKeyId The ID of an AWS-managed customer master key CMK for Amazon SNS or a custom CMK. For more information, see Key Terms: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms. For more examples, see KeyId: https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters in the *AWS Key Management Service API Reference*. This property applies only to server-side-encryption: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html. @@ -122,6 +136,17 @@ If you specify a name, you can't perform updates that require replacement of thi [System.String] $LogicalId, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ContentBasedDeduplication, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { @@ -133,6 +158,17 @@ If you specify a name, you can't perform updates that require replacement of thi })] $DisplayName, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $FifoTopic, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSSQSQueue.ps1 b/VaporShell/Public/Resource Types/New-VSSQSQueue.ps1 index 5fde35aa3..5c1890d18 100644 --- a/VaporShell/Public/Resource Types/New-VSSQSQueue.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSQSQueue.ps1 @@ -194,7 +194,7 @@ For more information about Amazon SQS queue visibility timeouts, see Visibility $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -216,7 +216,7 @@ For more information about Amazon SQS queue visibility timeouts, see Visibility $DelaySeconds, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSSSMAssociation.ps1 b/VaporShell/Public/Resource Types/New-VSSSMAssociation.ps1 index 2d1c1707b..f1692041b 100644 --- a/VaporShell/Public/Resource Types/New-VSSSMAssociation.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSSMAssociation.ps1 @@ -113,6 +113,13 @@ InstanceId has been deprecated. To specify an instance ID for an association, us UpdateType: Mutable PrimitiveType: Integer + .PARAMETER ApplyOnlyAtCronInterval + + Reference: Cron and Rate Expressions for Systems Manager: https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-association.html#cfn-ssm-association-applyonlyatcroninterval + UpdateType: Mutable + PrimitiveType: Boolean + .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. @@ -320,6 +327,17 @@ InstanceId has been deprecated. To specify an instance ID for an association, us } })] $WaitForSuccessTimeoutSeconds, + [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ApplyOnlyAtCronInterval, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, diff --git a/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindow.ps1 b/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindow.ps1 index c1ca97920..e27d62706 100644 --- a/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindow.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindow.ps1 @@ -56,6 +56,13 @@ For more information, see Systems Manager Maintenance Windows: https://docs.aws. PrimitiveType: Integer UpdateType: Mutable + .PARAMETER ScheduleOffset + + Reference: Cron and Rate Expressions for Systems Manager: https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduleoffset + PrimitiveType: Integer + UpdateType: Mutable + .PARAMETER EndDate The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive. @@ -171,7 +178,7 @@ For more information, see Systems Manager Maintenance Windows: https://docs.aws. $Description, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -214,6 +221,17 @@ For more information, see Systems Manager Maintenance Windows: https://docs.aws. })] $Duration, [parameter(Mandatory = $false)] + [ValidateScript( { + $allowedTypes = "System.Int32","Vaporshell.Function" + if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { + $true + } + else { + $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) + } + })] + $ScheduleOffset, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindowTask.ps1 b/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindowTask.ps1 index caeec0005..71fd7fc25 100644 --- a/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindowTask.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSSMMaintenanceWindowTask.ps1 @@ -101,7 +101,7 @@ TaskParameters has been deprecated. To specify parameters to pass to a task when Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-tasktype PrimitiveType: String - UpdateType: Mutable + UpdateType: Immutable .PARAMETER LoggingInfo Information about an Amazon S3 bucket to write task-level logs to. diff --git a/VaporShell/Public/Resource Types/New-VSSSMPatchBaseline.ps1 b/VaporShell/Public/Resource Types/New-VSSSMPatchBaseline.ps1 index fc975af3a..00ae99349 100644 --- a/VaporShell/Public/Resource Types/New-VSSSMPatchBaseline.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSSMPatchBaseline.ps1 @@ -252,7 +252,7 @@ For information about accepted formats for lists of approved patches and rejecte $ApprovedPatchesComplianceLevel, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSSageMakerEndpoint.ps1 b/VaporShell/Public/Resource Types/New-VSSageMakerEndpoint.ps1 index bd3321b2e..6d11cbf18 100644 --- a/VaporShell/Public/Resource Types/New-VSSageMakerEndpoint.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSageMakerEndpoint.ps1 @@ -114,7 +114,7 @@ For more information, see Resource Tag: https://docs.aws.amazon.com/AWSCloudForm $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSSageMakerEndpointConfig.ps1 b/VaporShell/Public/Resource Types/New-VSSageMakerEndpointConfig.ps1 index b23a0e293..ac4cc1e9a 100644 --- a/VaporShell/Public/Resource Types/New-VSSageMakerEndpointConfig.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSageMakerEndpointConfig.ps1 @@ -12,6 +12,11 @@ function New-VSSageMakerEndpointConfig { .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 DataCaptureConfig + Type: DataCaptureConfig + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig + UpdateType: Immutable + .PARAMETER ProductionVariants A list of ProductionVariant objects, one for each model that you want to host at this endpoint. @@ -113,6 +118,8 @@ For more information, see Resource Tag: https://docs.aws.amazon.com/AWSCloudForm })] [System.String] $LogicalId, + [parameter(Mandatory = $false)] + $DataCaptureConfig, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "Vaporshell.Resource.SageMaker.EndpointConfig.ProductionVariant" diff --git a/VaporShell/Public/Resource Types/New-VSSecretsManagerRotationSchedule.ps1 b/VaporShell/Public/Resource Types/New-VSSecretsManagerRotationSchedule.ps1 index 064c40223..02e19340a 100644 --- a/VaporShell/Public/Resource Types/New-VSSecretsManagerRotationSchedule.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSecretsManagerRotationSchedule.ps1 @@ -23,6 +23,13 @@ When you configure rotation for a secret, AWS CloudFormation automatically rotat PrimitiveType: String UpdateType: Immutable + .PARAMETER HostedRotationLambda + + Rotating Your AWS Secrets Manager Secrets: https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html in the AWS Secrets Manager User Guide + + Type: HostedRotationLambda + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda + UpdateType: Mutable + .PARAMETER RotationLambdaARN Specifies the ARN of the Lambda function that can rotate the secret. If you don't specify this parameter, then the secret must already have the ARN of a Lambda function configured. To reference a Lambda function also created in this template, use the Ref: https://docs.aws.amazon.com/git statusAWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html function with the function's logical ID. @@ -111,6 +118,8 @@ When you configure rotation for a secret, AWS CloudFormation automatically rotat })] $SecretId, [parameter(Mandatory = $false)] + $HostedRotationLambda, + [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { diff --git a/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProduct.ps1 b/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProduct.ps1 index e689ca4d2..bfb2d2b06 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProduct.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProduct.ps1 @@ -158,7 +158,7 @@ function New-VSServiceCatalogCloudFormationProduct { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProvisionedProduct.ps1 b/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProvisionedProduct.ps1 index 35d5122a5..efc637d87 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProvisionedProduct.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceCatalogCloudFormationProvisionedProduct.ps1 @@ -16,27 +16,39 @@ If the request contains a tag key with an empty list of values, there is a tag c .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 PathId - The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use ListLaunchPaths: https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html. + .PARAMETER AcceptLanguage + The language code. ++ en - English default ++ jp - Japanese ++ zh - Chinese - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-pathid - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-acceptlanguage UpdateType: Mutable + PrimitiveType: String - .PARAMETER ProvisioningParameters - Parameters specified by the administrator that are required for provisioning the product. + .PARAMETER NotificationArns + Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events. + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-notificationarns + UpdateType: Immutable Type: List - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameters - ItemType: ProvisioningParameter + PrimitiveItemType: String + DuplicatesAllowed: False + + .PARAMETER PathId + The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use ListLaunchPaths: https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-pathid UpdateType: Mutable + PrimitiveType: String - .PARAMETER ProvisioningPreferences - StackSet preferences that are required for provisioning the product or updating a provisioned product. + .PARAMETER ProductId + The product identifier. +You must specify either the ID or the name of the product, but not both. - Type: ProvisioningPreferences - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productid UpdateType: Mutable + PrimitiveType: String .PARAMETER ProductName A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned. @@ -44,66 +56,55 @@ Each time a stack is created or updated, if ProductName is provided it will succ You must specify either the name or the ID of the product, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productname + UpdateType: Mutable PrimitiveType: String + + .PARAMETER ProvisionedProductName + A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisionedproductname + UpdateType: Immutable + PrimitiveType: String + + .PARAMETER ProvisioningArtifactId + The identifier of the provisioning artifact also known as a version. +You must specify either the ID or the name of the provisioning artifact, but not both. + + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactid UpdateType: Mutable + PrimitiveType: String .PARAMETER ProvisioningArtifactName The name of the provisioning artifact also known as a version for the product. This name must be unique for the product. You must specify either the name or the ID of the provisioning artifact, but not both. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactname - PrimitiveType: String UpdateType: Mutable + PrimitiveType: String - .PARAMETER NotificationArns - Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events. - - PrimitiveItemType: String - Type: List - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-notificationarns - UpdateType: Immutable - - .PARAMETER AcceptLanguage - The language code. -+ en - English default -+ jp - Japanese -+ zh - Chinese + .PARAMETER ProvisioningParameters + Parameters specified by the administrator that are required for provisioning the product. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-acceptlanguage - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameters UpdateType: Mutable + Type: List + ItemType: ProvisioningParameter - .PARAMETER ProductId - The product identifier. -You must specify either the ID or the name of the product, but not both. + .PARAMETER ProvisioningPreferences + StackSet preferences that are required for provisioning the product or updating a provisioned product. - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productid - PrimitiveType: String + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences UpdateType: Mutable + Type: ProvisioningPreferences .PARAMETER Tags One or more tags. Requires the provisioned product to have an ResourceUpdateConstraint: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html resource with TagUpdatesOnProvisionedProduct set to ALLOWED to allow tag updates. If RESOURCE_UPDATE constraint is not present, tags updates are ignored. - Type: List Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-tags - ItemType: Tag - UpdateType: Mutable - - .PARAMETER ProvisionedProductName - A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisionedproductname - PrimitiveType: String - UpdateType: Immutable - - .PARAMETER ProvisioningArtifactId - The identifier of the provisioning artifact also known as a version. -You must specify either the ID or the name of the provisioning artifact, but not both. - - Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactid - PrimitiveType: String UpdateType: Mutable + Type: List + ItemType: Tag .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. @@ -177,10 +178,12 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $PathId, + $AcceptLanguage, + [parameter(Mandatory = $false)] + $NotificationArns, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "Vaporshell.Resource.ServiceCatalog.CloudFormationProvisionedProduct.ProvisioningParameter" + $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -188,9 +191,7 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProvisioningParameters, - [parameter(Mandatory = $false)] - $ProvisioningPreferences, + $PathId, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -201,7 +202,7 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProductName, + $ProductId, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -212,9 +213,7 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProvisioningArtifactName, - [parameter(Mandatory = $false)] - $NotificationArns, + $ProductName, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -225,7 +224,7 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $AcceptLanguage, + $ProvisionedProductName, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -236,10 +235,7 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProductId, - [VaporShell.Core.TransformTag()] - [parameter(Mandatory = $false)] - $Tags, + $ProvisioningArtifactId, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -250,10 +246,10 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProvisionedProductName, + $ProvisioningArtifactName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" + $allowedTypes = "Vaporshell.Resource.ServiceCatalog.CloudFormationProvisionedProduct.ProvisioningParameter" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -261,7 +257,12 @@ You must specify either the ID or the name of the provisioning artifact, but not $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] - $ProvisioningArtifactId, + $ProvisioningParameters, + [parameter(Mandatory = $false)] + $ProvisioningPreferences, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, @@ -325,17 +326,17 @@ You must specify either the ID or the name of the provisioning artifact, but not Condition { $ResourceParams.Add("Condition",$Condition) } - ProvisioningParameters { + NotificationArns { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) } - $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name ProvisioningParameters -Value @($ProvisioningParameters) + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name NotificationArns -Value @($NotificationArns) } - NotificationArns { + ProvisioningParameters { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) } - $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name NotificationArns -Value @($NotificationArns) + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name ProvisioningParameters -Value @($ProvisioningParameters) } Tags { if (!($ResourceParams["Properties"])) { diff --git a/VaporShell/Public/Resource Types/New-VSServiceCatalogTagOption.ps1 b/VaporShell/Public/Resource Types/New-VSServiceCatalogTagOption.ps1 index bb9953fa4..e89887e3c 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceCatalogTagOption.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceCatalogTagOption.ps1 @@ -97,7 +97,7 @@ function New-VSServiceCatalogTagOption { $LogicalId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryHttpNamespace.ps1 b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryHttpNamespace.ps1 index aa768ad1f..fb6b84ce6 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryHttpNamespace.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryHttpNamespace.ps1 @@ -21,6 +21,14 @@ For the current limit on the number of namespaces that you can create using the PrimitiveType: String UpdateType: Immutable + .PARAMETER Tags + + CreateHttpNamespace: https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateHttpNamespace.html in the *AWS Cloud Map API Reference* + + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-httpnamespace.html#cfn-servicediscovery-httpnamespace-tags + ItemType: Tag + UpdateType: Immutable + .PARAMETER Name The name that you want to assign to this namespace. @@ -101,6 +109,9 @@ For the current limit on the number of namespaces that you can create using the } })] $Description, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -175,6 +186,12 @@ For the current limit on the number of namespaces that you can create using the Condition { $ResourceParams.Add("Condition",$Condition) } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPrivateDnsNamespace.ps1 b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPrivateDnsNamespace.ps1 index 39ffc931e..8bee94ae7 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPrivateDnsNamespace.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPrivateDnsNamespace.ps1 @@ -26,6 +26,14 @@ function New-VSServiceDiscoveryPrivateDnsNamespace { PrimitiveType: String UpdateType: Immutable + .PARAMETER Tags + + CreatePrivateDnsNamespace: https://docs.aws.amazon.com/cloud-map/latest/api/API_CreatePrivateDnsNamespace.html in the *AWS Cloud Map API Reference* + + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html#cfn-servicediscovery-privatednsnamespace-tags + ItemType: Tag + UpdateType: Immutable + .PARAMETER Name The name that you want to assign to this namespace. When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace. @@ -117,6 +125,9 @@ function New-VSServiceDiscoveryPrivateDnsNamespace { } })] $Vpc, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -191,6 +202,12 @@ function New-VSServiceDiscoveryPrivateDnsNamespace { Condition { $ResourceParams.Add("Condition",$Condition) } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPublicDnsNamespace.ps1 b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPublicDnsNamespace.ps1 index ced2b94c4..2821053a2 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPublicDnsNamespace.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryPublicDnsNamespace.ps1 @@ -19,6 +19,14 @@ function New-VSServiceDiscoveryPublicDnsNamespace { PrimitiveType: String UpdateType: Immutable + .PARAMETER Tags + + CreatePublicDnsNamespace: https://docs.aws.amazon.com/cloud-map/latest/api/API_CreatePublicDnsNamespace.html in the *AWS Cloud Map API Reference* + + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-publicdnsnamespace.html#cfn-servicediscovery-publicdnsnamespace-tags + ItemType: Tag + UpdateType: Immutable + .PARAMETER Name The name that you want to assign to this namespace. @@ -99,6 +107,9 @@ function New-VSServiceDiscoveryPublicDnsNamespace { } })] $Description, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -173,6 +184,12 @@ function New-VSServiceDiscoveryPublicDnsNamespace { Condition { $ResourceParams.Add("Condition",$Condition) } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryService.ps1 b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryService.ps1 index 83c713e74..0341b3056 100644 --- a/VaporShell/Public/Resource Types/New-VSServiceDiscoveryService.ps1 +++ b/VaporShell/Public/Resource Types/New-VSServiceDiscoveryService.ps1 @@ -64,6 +64,14 @@ For information about the charges for health checks, see Amazon Route 53 Pricing Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-healthcheckconfig UpdateType: Mutable + .PARAMETER Tags + + CreateService: https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html in the *AWS Cloud Map API Reference* + + Type: List + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html#cfn-servicediscovery-service-tags + ItemType: Tag + UpdateType: Immutable + .PARAMETER Name The name of the service. @@ -161,6 +169,9 @@ For information about the charges for health checks, see Amazon Route 53 Pricing $NamespaceId, [parameter(Mandatory = $false)] $HealthCheckConfig, + [VaporShell.Core.TransformTag()] + [parameter(Mandatory = $false)] + $Tags, [parameter(Mandatory = $false)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function","Vaporshell.Condition" @@ -235,6 +246,12 @@ For information about the charges for health checks, see Amazon Route 53 Pricing Condition { $ResourceParams.Add("Condition",$Condition) } + Tags { + if (!($ResourceParams["Properties"])) { + $ResourceParams.Add("Properties",([PSCustomObject]@{})) + } + $ResourceParams["Properties"] | Add-Member -MemberType NoteProperty -Name Tags -Value @($Tags) + } Default { if (!($ResourceParams["Properties"])) { $ResourceParams.Add("Properties",([PSCustomObject]@{})) diff --git a/VaporShell/Public/Resource Types/New-VSStepFunctionsStateMachine.ps1 b/VaporShell/Public/Resource Types/New-VSStepFunctionsStateMachine.ps1 index 7feeb9bbc..bc6b99831 100644 --- a/VaporShell/Public/Resource Types/New-VSStepFunctionsStateMachine.ps1 +++ b/VaporShell/Public/Resource Types/New-VSStepFunctionsStateMachine.ps1 @@ -74,6 +74,11 @@ Tags may only contain Unicode letters, digits, white space, or these symbols: _ PrimitiveType: String UpdateType: Immutable + .PARAMETER TracingConfiguration + Type: TracingConfiguration + Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration + 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. @@ -197,6 +202,8 @@ Tags may only contain Unicode letters, digits, white space, or these symbols: _ } })] $StateMachineType, + [parameter(Mandatory = $false)] + $TracingConfiguration, [ValidateSet("Delete","Retain","Snapshot")] [System.String] $DeletionPolicy, diff --git a/VaporShell/Public/Resource Types/New-VSSyntheticsCanary.ps1 b/VaporShell/Public/Resource Types/New-VSSyntheticsCanary.ps1 index 14bb1dfef..45fe14453 100644 --- a/VaporShell/Public/Resource Types/New-VSSyntheticsCanary.ps1 +++ b/VaporShell/Public/Resource Types/New-VSSyntheticsCanary.ps1 @@ -248,11 +248,11 @@ The state of the canary. For example, RUNNING. $Tags, [parameter(Mandatory = $false)] $VPCConfig, - [parameter(Mandatory = $true)] + [parameter(Mandatory = $false)] $RunConfig, [parameter(Mandatory = $true)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/VaporShell/Public/Resource Types/New-VSWAFv2WebACLAssociation.ps1 b/VaporShell/Public/Resource Types/New-VSWAFv2WebACLAssociation.ps1 index 2e90bfd23..fec005ac2 100644 --- a/VaporShell/Public/Resource Types/New-VSWAFv2WebACLAssociation.ps1 +++ b/VaporShell/Public/Resource Types/New-VSWAFv2WebACLAssociation.ps1 @@ -25,14 +25,14 @@ The ARN must be in one of the following formats: + For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html#cfn-wafv2-webaclassociation-resourcearn - UpdateType: Mutable + UpdateType: Immutable PrimitiveType: String .PARAMETER WebACLArn The Amazon Resource Name ARN of the Web ACL that you want to associate with the resource. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html#cfn-wafv2-webaclassociation-webaclarn - UpdateType: Mutable + UpdateType: Immutable PrimitiveType: String .PARAMETER DeletionPolicy diff --git a/VaporShell/Public/Resource Types/New-VSWorkSpacesWorkspace.ps1 b/VaporShell/Public/Resource Types/New-VSWorkSpacesWorkspace.ps1 index a748a1fd5..e72bf4180 100644 --- a/VaporShell/Public/Resource Types/New-VSWorkSpacesWorkspace.ps1 +++ b/VaporShell/Public/Resource Types/New-VSWorkSpacesWorkspace.ps1 @@ -158,7 +158,7 @@ Updates are not supported for the BundleId, RootVolumeEncryptionEnabled, UserVol $DirectoryId, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } @@ -183,7 +183,7 @@ Updates are not supported for the BundleId, RootVolumeEncryptionEnabled, UserVol $UserName, [parameter(Mandatory = $false)] [ValidateScript( { - $allowedTypes = "System.Boolean","Vaporshell.Function" + $allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } diff --git a/ci/Convert-SpecToFunction.ps1 b/ci/Convert-SpecToFunction.ps1 index c405dce07..d875dc410 100644 --- a/ci/Convert-SpecToFunction.ps1 +++ b/ci/Convert-SpecToFunction.ps1 @@ -249,7 +249,7 @@ function $FunctionName { $scriptContents += @" [parameter(Mandatory = $Mandatory)] [ValidateScript( { - `$allowedTypes = "System.Double","Vaporshell.Function" + `$allowedTypes = "System.Double","Vaporshell.Function","Vaporshell.Condition" if ([string]`$(`$_.PSTypeNames) -match "(`$((`$allowedTypes|ForEach-Object{[RegEx]::Escape(`$_)}) -join '|'))") { `$true } @@ -264,7 +264,7 @@ function $FunctionName { $scriptContents += @" [parameter(Mandatory = $Mandatory)] [ValidateScript( { - `$allowedTypes = "System.Boolean","Vaporshell.Function" + `$allowedTypes = "System.Boolean","Vaporshell.Function","Vaporshell.Condition" if ([string]`$(`$_.PSTypeNames) -match "(`$((`$allowedTypes|ForEach-Object{[RegEx]::Escape(`$_)}) -join '|'))") { `$true }