VaporShell.SAM.psm1
# PSM1 Contents function Format-Json { [CmdletBinding()] Param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [String] $Json ) Begin { $cleaner = { param([String]$Line) Process{ [Regex]::Replace( $Line, "\\u(?<Value>[a-zA-Z0-9]{4})", { param($m)([char]([int]::Parse( $m.Groups['Value'].Value, [System.Globalization.NumberStyles]::HexNumber ))).ToString() } ) } } } Process { if ($PSVersionTable.PSVersion.Major -lt 6) { try { $indent = 0; $res = $Json -split '\n' | ForEach-Object { if ($_ -match '[\}\]]') { # This line contains ] or }, decrement the indentation level $indent-- } $line = (' ' * $indent * 2) + $_.TrimStart().Replace(': ', ': ') if ($_ -match '[\{\[]') { # This line contains [ or {, increment the indentation level $indent++ } $cleaner.Invoke($line) } $res -join "`n" } catch { ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n" } } else { ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n" } } } function Get-TrueCount { Param ( [parameter(Mandatory = $false,Position = 0,ValueFromPipeline = $true)] $Array ) Process { if ($array) { if ($array.Count) { $count = $array.Count } else { $count = 1 } } else { $count = 0 } } End { return $count } } function New-VSError { <# .SYNOPSIS Error generator function to use in tandem with $PSCmdlet.ThrowTerminatingError() .PARAMETER Result Allows input of an error from AWS SDK, resulting in the Exception message being parsed out. .PARAMETER String Used to create basic String message errors in the same wrapper #> [cmdletbinding(DefaultParameterSetName="Result")] param( [parameter(Position=0,ParameterSetName="Result")] $Result, [parameter(Position=0,ParameterSetName="String")] $String ) switch ($PSCmdlet.ParameterSetName) { Result { $Exception = "$($result.Exception.InnerException.Message)" } String { $Exception = "$String" } } $e = New-Object "System.Exception" $Exception $errorRecord = New-Object 'System.Management.Automation.ErrorRecord' $e, $null, ([System.Management.Automation.ErrorCategory]::InvalidOperation), $null return $errorRecord } function ResolveS3Endpoint { <# .SYNOPSIS Resolves the S3 endpoint most appropriate for each region. #> Param ( [parameter(Mandatory=$true,Position=0)] [ValidateSet("eu-west-2","ap-south-1","us-east-2","sa-east-1","us-west-1","us-west-2","eu-west-1","ap-southeast-2","ca-central-1","ap-northeast-2","us-east-1","eu-central-1","ap-southeast-1","ap-northeast-1")] [String] $Region ) $endpointMap = @{ "us-east-2" = "s3.us-east-2.amazonaws.com" "us-east-1" = "s3.amazonaws.com" "us-west-1" = "s3-us-west-1.amazonaws.com" "us-west-2" = "s3-us-west-2.amazonaws.com" "ca-central-1" = "s3.ca-central-1.amazonaws.com" "ap-south-1" = "s3.ap-south-1.amazonaws.com" "ap-northeast-2" = "s3.ap-northeast-2.amazonaws.com" "ap-southeast-1" = "s3-ap-southeast-1.amazonaws.com" "ap-southeast-2" = "s3-ap-southeast-2.amazonaws.com" "ap-northeast-1" = "s3-ap-northeast-1.amazonaws.com" "eu-central-1" = "s3.eu-central-1.amazonaws.com" "eu-west-1" = "s3-eu-west-1.amazonaws.com" "eu-west-2" = "s3.eu-west-2.amazonaws.com" "sa-east-1" = "s3-sa-east-1.amazonaws.com" } return $endpointMap[$Region] } function Add-VSSAMApiAccessLogSetting { <# .SYNOPSIS Adds an AWS::Serverless::Api.AccessLogSetting resource property to the template. The AccessLogSetting property type specifies settings for logging access in this stage. .DESCRIPTION Adds an AWS::Serverless::Api.AccessLogSetting resource property to the template. The AccessLogSetting property type specifies settings for logging access in this stage. AccessLogSetting is a property of the AWS::ApiGateway::Stage: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html resource. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html .PARAMETER DestinationArn The Amazon Resource Name ARN of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with amazon-apigateway-. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn PrimitiveType: String UpdateType: Immutable .PARAMETER Format A single line format of the access logs of data, as specified by selected $context variables: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference. The format must include at least $context.requestId. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMApiAccessLogSetting])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $DestinationArn, [parameter(Mandatory = $false)] [object] $Format ) Process { $obj = [SAMApiAccessLogSetting]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMApiAccessLogSetting' function Add-VSSAMApiAuth { <# .SYNOPSIS Adds an AWS::Serverless::Api.Auth resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Api.Auth resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object .PARAMETER DefaultAuthorizer Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object PrimitiveType: String UpdateType: Immutable .PARAMETER Authorizers Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object PrimitiveType: Json UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMApiAuth])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $DefaultAuthorizer, [parameter(Mandatory = $false)] [VSJson] $Authorizers ) Process { $obj = [SAMApiAuth]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMApiAuth' function Add-VSSAMApiCorsConfiguration { <# .SYNOPSIS Adds an AWS::Serverless::Api.CorsConfiguration resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Api.CorsConfiguration resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration .PARAMETER AllowMethods Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration PrimitiveType: String UpdateType: Immutable .PARAMETER AllowHeaders Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration PrimitiveType: String UpdateType: Immutable .PARAMETER AllowOrigin Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration PrimitiveType: String UpdateType: Immutable .PARAMETER MaxAge Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration PrimitiveType: String UpdateType: Immutable .PARAMETER AllowCredentials Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cors-configuration PrimitiveType: Boolean UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMApiCorsConfiguration])] [cmdletbinding()] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","AllowCredentials")] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","AllowCredentials")] Param( [parameter(Mandatory = $false)] [object] $AllowMethods, [parameter(Mandatory = $false)] [object] $AllowHeaders, [parameter(Mandatory = $true)] [object] $AllowOrigin, [parameter(Mandatory = $false)] [object] $MaxAge, [parameter(Mandatory = $false)] [object] $AllowCredentials ) Process { $obj = [SAMApiCorsConfiguration]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMApiCorsConfiguration' function Add-VSSAMApiS3Location { <# .SYNOPSIS Adds an AWS::Serverless::Api.S3Location resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Api.S3Location resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object .PARAMETER Bucket Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Key Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Version Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMApiS3Location])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $true)] [object] $Key, [parameter(Mandatory = $true)] [object] $Version ) Process { $obj = [SAMApiS3Location]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMApiS3Location' function Add-VSSAMApplicationApplicationLocation { <# .SYNOPSIS Adds an AWS::Serverless::Application.ApplicationLocation resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Application.ApplicationLocation resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication .PARAMETER ApplicationId Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication PrimitiveType: String UpdateType: Immutable .PARAMETER SemanticVersion Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMApplicationApplicationLocation])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $ApplicationId, [parameter(Mandatory = $true)] [object] $SemanticVersion ) Process { $obj = [SAMApplicationApplicationLocation]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMApplicationApplicationLocation' function Add-VSSAMFunctionAlexaSkillEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.AlexaSkillEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.AlexaSkillEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill .PARAMETER Variables Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill Type: Map PrimitiveItemType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionAlexaSkillEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [IDictionary] $Variables ) Process { $obj = [SAMFunctionAlexaSkillEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionAlexaSkillEvent' function Add-VSSAMFunctionApiEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.ApiEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.ApiEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api .PARAMETER Path Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .PARAMETER Method Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .PARAMETER RestApiId Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionApiEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Path, [parameter(Mandatory = $true)] [object] $Method, [parameter(Mandatory = $false)] [object] $RestApiId ) Process { $obj = [SAMFunctionApiEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionApiEvent' function Add-VSSAMFunctionBucketSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.BucketSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.BucketSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER BucketName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionBucketSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $BucketName ) Process { $obj = [SAMFunctionBucketSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionBucketSAMPT' function Add-VSSAMFunctionCloudWatchEventEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.CloudWatchEventEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.CloudWatchEventEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent .PARAMETER Pattern Documentation: http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html PrimitiveType: Json UpdateType: Immutable .PARAMETER Input Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent PrimitiveType: String UpdateType: Immutable .PARAMETER InputPath Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionCloudWatchEventEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Pattern, [parameter(Mandatory = $false)] [object] $Input, [parameter(Mandatory = $false)] [object] $InputPath ) Process { $obj = [SAMFunctionCloudWatchEventEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionCloudWatchEventEvent' function Add-VSSAMFunctionCloudWatchLogsEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.CloudWatchLogsEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.CloudWatchLogsEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent .PARAMETER LogGroupName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchlogs PrimitiveType: String UpdateType: Immutable .PARAMETER FilterPattern Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchlogs PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionCloudWatchLogsEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $LogGroupName, [parameter(Mandatory = $true)] [object] $FilterPattern ) Process { $obj = [SAMFunctionCloudWatchLogsEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionCloudWatchLogsEvent' function Add-VSSAMFunctionCollectionSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.CollectionSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.CollectionSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER CollectionId Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionCollectionSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $CollectionId ) Process { $obj = [SAMFunctionCollectionSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionCollectionSAMPT' function Add-VSSAMFunctionDeadLetterQueue { <# .SYNOPSIS Adds an AWS::Serverless::Function.DeadLetterQueue resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.DeadLetterQueue resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deadletterqueue-object .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER TargetArn Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionDeadLetterQueue])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Type, [parameter(Mandatory = $true)] [object] $TargetArn ) Process { $obj = [SAMFunctionDeadLetterQueue]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionDeadLetterQueue' function Add-VSSAMFunctionDeploymentPreference { <# .SYNOPSIS Adds an AWS::Serverless::Function.DeploymentPreference resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.DeploymentPreference resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object PrimitiveType: String UpdateType: Immutable .PARAMETER Alarms Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER Hooks Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER Role Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object PrimitiveType: String UpdateType: Immutable .PARAMETER Enabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object PrimitiveType: Boolean UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionDeploymentPreference])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Type, [parameter(Mandatory = $false)] $Alarms, [parameter(Mandatory = $false)] [IDictionary] $Hooks, [parameter(Mandatory = $false)] [object] $Role, [parameter(Mandatory = $false)] [object] $Enabled ) Process { $obj = [SAMFunctionDeploymentPreference]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionDeploymentPreference' function Add-VSSAMFunctionDestinationConfig { <# .SYNOPSIS Adds an AWS::Serverless::Function.DestinationConfig resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.DestinationConfig resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object .PARAMETER OnFailure Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object Type: OnFailure UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionDestinationConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] $OnFailure ) Process { $obj = [SAMFunctionDestinationConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionDestinationConfig' function Add-VSSAMFunctionDomainSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.DomainSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.DomainSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER DomainName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionDomainSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $DomainName ) Process { $obj = [SAMFunctionDomainSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionDomainSAMPT' function Add-VSSAMFunctionDynamoDBEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.DynamoDBEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.DynamoDBEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb .PARAMETER Stream Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: String UpdateType: Immutable .PARAMETER StartingPosition Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: String UpdateType: Immutable .PARAMETER BatchSize Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Integer UpdateType: Immutable .PARAMETER Enabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Boolean UpdateType: Immutable .PARAMETER MaximumBatchingWindowInSeconds Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Integer UpdateType: Immutable .PARAMETER MaximumRetryAttempts Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Integer UpdateType: Immutable .PARAMETER BisectBatchOnFunctionError Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Boolean UpdateType: Immutable .PARAMETER MaximumRecordAgeInSeconds Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Integer UpdateType: Immutable .PARAMETER DestinationConfig Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb Type: DestinationConfig UpdateType: Immutable .PARAMETER ParallelizationFactor Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionDynamoDBEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Stream, [parameter(Mandatory = $true)] [object] $StartingPosition, [parameter(Mandatory = $false)] [object] $BatchSize, [parameter(Mandatory = $false)] [object] $Enabled, [parameter(Mandatory = $false)] [object] $MaximumBatchingWindowInSeconds, [parameter(Mandatory = $false)] [object] $MaximumRetryAttempts, [parameter(Mandatory = $false)] [object] $BisectBatchOnFunctionError, [parameter(Mandatory = $false)] [object] $MaximumRecordAgeInSeconds, [parameter(Mandatory = $false)] $DestinationConfig, [parameter(Mandatory = $false)] [object] $ParallelizationFactor ) Process { $obj = [SAMFunctionDynamoDBEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionDynamoDBEvent' function Add-VSSAMFunctionEmptySAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.EmptySAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.EmptySAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionEmptySAMPT])] [cmdletbinding()] Param( ) Process { $obj = [SAMFunctionEmptySAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionEmptySAMPT' function Add-VSSAMFunctionEventBridgeRuleEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.EventBridgeRuleEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.EventBridgeRuleEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule .PARAMETER Pattern Documentation: https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html PrimitiveType: Json UpdateType: Immutable .PARAMETER EventBusName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule PrimitiveType: String UpdateType: Immutable .PARAMETER Input Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule PrimitiveType: String UpdateType: Immutable .PARAMETER InputPath Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#eventbridgerule PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionEventBridgeRuleEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Pattern, [parameter(Mandatory = $false)] [object] $EventBusName, [parameter(Mandatory = $false)] [object] $Input, [parameter(Mandatory = $false)] [object] $InputPath ) Process { $obj = [SAMFunctionEventBridgeRuleEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionEventBridgeRuleEvent' function Add-VSSAMFunctionEventSource { <# .SYNOPSIS Adds an AWS::Serverless::Function.EventSource resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.EventSource resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object PrimitiveType: String UpdateType: Immutable .PARAMETER Properties Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types Types: S3Event SNSEvent SQSEvent KinesisEvent DynamoDBEvent ApiEvent ScheduleEvent CloudWatchEventEvent CloudWatchLogsEvent IoTRuleEvent AlexaSkillEvent EventBridgeRuleEvent UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionEventSource])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Type, [parameter(Mandatory = $true)] $Properties ) Process { $obj = [SAMFunctionEventSource]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionEventSource' function Add-VSSAMFunctionFileSystemConfig { <# .SYNOPSIS Adds an AWS::Serverless::Function.FileSystemConfig resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.FileSystemConfig resource property to the template. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath .PARAMETER Arn Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath PrimitiveType: String UpdateType: Immutable .PARAMETER LocalMountPath Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionFileSystemConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Arn, [parameter(Mandatory = $false)] [object] $LocalMountPath ) Process { $obj = [SAMFunctionFileSystemConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionFileSystemConfig' function Add-VSSAMFunctionFunctionEnvironment { <# .SYNOPSIS Adds an AWS::Serverless::Function.FunctionEnvironment resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.FunctionEnvironment resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object .PARAMETER Variables Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object Type: Map PrimitiveItemType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionFunctionEnvironment])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [IDictionary] $Variables ) Process { $obj = [SAMFunctionFunctionEnvironment]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionFunctionEnvironment' function Add-VSSAMFunctionFunctionSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.FunctionSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.FunctionSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER FunctionName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionFunctionSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $FunctionName ) Process { $obj = [SAMFunctionFunctionSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionFunctionSAMPT' function Add-VSSAMFunctionIAMPolicyDocument { <# .SYNOPSIS Adds an AWS::Serverless::Function.IAMPolicyDocument resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.IAMPolicyDocument resource property to the template. .LINK http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html .PARAMETER Statement Documentation: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html PrimitiveType: Json UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionIAMPolicyDocument])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Statement ) Process { $obj = [SAMFunctionIAMPolicyDocument]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionIAMPolicyDocument' function Add-VSSAMFunctionIdentitySAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.IdentitySAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.IdentitySAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER IdentityName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionIdentitySAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $IdentityName ) Process { $obj = [SAMFunctionIdentitySAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionIdentitySAMPT' function Add-VSSAMFunctionIoTRuleEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.IoTRuleEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.IoTRuleEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule .PARAMETER Sql Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule PrimitiveType: String UpdateType: Immutable .PARAMETER AwsIotSqlVersion Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionIoTRuleEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Sql, [parameter(Mandatory = $false)] [object] $AwsIotSqlVersion ) Process { $obj = [SAMFunctionIoTRuleEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionIoTRuleEvent' function Add-VSSAMFunctionKeySAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.KeySAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.KeySAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER KeyId Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionKeySAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $KeyId ) Process { $obj = [SAMFunctionKeySAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionKeySAMPT' function Add-VSSAMFunctionKinesisEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.KinesisEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.KinesisEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis .PARAMETER Stream Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis PrimitiveType: String UpdateType: Immutable .PARAMETER StartingPosition Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis PrimitiveType: String UpdateType: Immutable .PARAMETER BatchSize Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis PrimitiveType: Integer UpdateType: Immutable .PARAMETER Enabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis PrimitiveType: Boolean UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionKinesisEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Stream, [parameter(Mandatory = $true)] [object] $StartingPosition, [parameter(Mandatory = $false)] [object] $BatchSize, [parameter(Mandatory = $false)] [object] $Enabled ) Process { $obj = [SAMFunctionKinesisEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionKinesisEvent' function Add-VSSAMFunctionLogGroupSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.LogGroupSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.LogGroupSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER LogGroupName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionLogGroupSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $LogGroupName ) Process { $obj = [SAMFunctionLogGroupSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionLogGroupSAMPT' function Add-VSSAMFunctionOnFailure { <# .SYNOPSIS Adds an AWS::Serverless::Function.OnFailure resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.OnFailure resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object PrimitiveType: String UpdateType: Immutable .PARAMETER Destination Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#destination-config-object PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionOnFailure])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Type, [parameter(Mandatory = $true)] [object] $Destination ) Process { $obj = [SAMFunctionOnFailure]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionOnFailure' function Add-VSSAMFunctionProvisionedConcurrencyConfig { <# .SYNOPSIS Adds an AWS::Serverless::Function.ProvisionedConcurrencyConfig resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.ProvisionedConcurrencyConfig resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#provisioned-concurrency-config-object .PARAMETER ProvisionedConcurrentExecutions Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#provisioned-concurrency-config-object PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionProvisionedConcurrencyConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $ProvisionedConcurrentExecutions ) Process { $obj = [SAMFunctionProvisionedConcurrencyConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionProvisionedConcurrencyConfig' function Add-VSSAMFunctionQueueSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.QueueSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.QueueSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER QueueName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionQueueSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $QueueName ) Process { $obj = [SAMFunctionQueueSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionQueueSAMPT' function Add-VSSAMFunctionS3Event { <# .SYNOPSIS Adds an AWS::Serverless::Function.S3Event resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.S3Event resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3 .PARAMETER Bucket Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3 PrimitiveType: String UpdateType: Immutable .PARAMETER Events Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3 PrimitiveTypes: String PrimitiveItemTypes: String .PARAMETER Filter Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3 Type: S3NotificationFilter UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionS3Event])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $true)] $Events, [parameter(Mandatory = $false)] $Filter ) Process { $obj = [SAMFunctionS3Event]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionS3Event' function Add-VSSAMFunctionS3KeyFilter { <# .SYNOPSIS Adds an AWS::Serverless::Function.S3KeyFilter resource property to the template. Specifies object key name filtering rules. For information about key name filtering, see Configuring Event Notifications: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html in the *Amazon Simple Storage Service Developer Guide*. .DESCRIPTION Adds an AWS::Serverless::Function.S3KeyFilter resource property to the template. Specifies object key name filtering rules. For information about key name filtering, see Configuring Event Notifications: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html in the *Amazon Simple Storage Service Developer Guide*. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html .PARAMETER Rules *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html Type: List ItemType: S3KeyFilterRule UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionS3KeyFilter])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Rules ) Process { $obj = [SAMFunctionS3KeyFilter]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionS3KeyFilter' function Add-VSSAMFunctionS3KeyFilterRule { <# .SYNOPSIS Adds an AWS::Serverless::Function.S3KeyFilterRule resource property to the template. Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name. .DESCRIPTION Adds an AWS::Serverless::Function.S3KeyFilterRule resource property to the template. Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html .PARAMETER Name The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html in the *Amazon Simple Storage Service Developer Guide*. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html PrimitiveType: String UpdateType: Immutable .PARAMETER Value The value that the filter searches for in object key names. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionS3KeyFilterRule])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Name, [parameter(Mandatory = $true)] [object] $Value ) Process { $obj = [SAMFunctionS3KeyFilterRule]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionS3KeyFilterRule' function Add-VSSAMFunctionS3Location { <# .SYNOPSIS Adds an AWS::Serverless::Function.S3Location resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.S3Location resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object .PARAMETER Bucket Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Key Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Version Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionS3Location])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $true)] [object] $Key, [parameter(Mandatory = $false)] [object] $Version ) Process { $obj = [SAMFunctionS3Location]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionS3Location' function Add-VSSAMFunctionS3NotificationFilter { <# .SYNOPSIS Adds an AWS::Serverless::Function.S3NotificationFilter resource property to the template. Specifies object key name filtering rules. For information about key name filtering, see Configuring Event Notifications: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html in the *Amazon Simple Storage Service Developer Guide*. .DESCRIPTION Adds an AWS::Serverless::Function.S3NotificationFilter resource property to the template. Specifies object key name filtering rules. For information about key name filtering, see Configuring Event Notifications: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html in the *Amazon Simple Storage Service Developer Guide*. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html .PARAMETER S3Key A container for object key name prefix and suffix filtering rules. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html Type: S3KeyFilter UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionS3NotificationFilter])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] $S3Key ) Process { $obj = [SAMFunctionS3NotificationFilter]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionS3NotificationFilter' function Add-VSSAMFunctionSAMPolicyTemplate { <# .SYNOPSIS Adds an AWS::Serverless::Function.SAMPolicyTemplate resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.SAMPolicyTemplate resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER CloudWatchPutMetricPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER EC2DescribePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER AMIDescribePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER CloudFormationDescribeStacksPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER RekognitionDetectOnlyPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER RekognitionLabelsPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER VPCAccessPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER SESEmailTemplateCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: EmptySAMPT UpdateType: Immutable .PARAMETER SQSPollerPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: QueueSAMPT UpdateType: Immutable .PARAMETER SQSSendMessagePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: QueueSAMPT UpdateType: Immutable .PARAMETER LambdaInvokePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: FunctionSAMPT UpdateType: Immutable .PARAMETER DynamoDBCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: TableSAMPT UpdateType: Immutable .PARAMETER DynamoDBReadPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: TableSAMPT UpdateType: Immutable .PARAMETER DynamoDBStreamReadPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: TableStreamSAMPT UpdateType: Immutable .PARAMETER SESSendBouncePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: IdentitySAMPT UpdateType: Immutable .PARAMETER SESCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: IdentitySAMPT UpdateType: Immutable .PARAMETER SESBulkTemplatedCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: IdentitySAMPT UpdateType: Immutable .PARAMETER ElasticsearchHttpPostPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: DomainSAMPT UpdateType: Immutable .PARAMETER S3ReadPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: BucketSAMPT UpdateType: Immutable .PARAMETER S3CrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: BucketSAMPT UpdateType: Immutable .PARAMETER RekognitionNoDataAccessPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: CollectionSAMPT UpdateType: Immutable .PARAMETER RekognitionReadPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: CollectionSAMPT UpdateType: Immutable .PARAMETER RekognitionWriteOnlyAccessPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: CollectionSAMPT UpdateType: Immutable .PARAMETER SNSCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: TopicSAMPT UpdateType: Immutable .PARAMETER SNSPublishMessagePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: TopicSAMPT UpdateType: Immutable .PARAMETER KinesisStreamReadPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: StreamSAMPT UpdateType: Immutable .PARAMETER KinesisCrudPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: StreamSAMPT UpdateType: Immutable .PARAMETER KMSDecryptPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: KeySAMPT UpdateType: Immutable .PARAMETER FilterLogEventsPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: LogGroupSAMPT UpdateType: Immutable .PARAMETER StepFunctionsExecutionPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: StateMachineSAMPT UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionSAMPolicyTemplate])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $CloudWatchPutMetricPolicy, [parameter(Mandatory = $false)] $EC2DescribePolicy, [parameter(Mandatory = $false)] $AMIDescribePolicy, [parameter(Mandatory = $false)] $CloudFormationDescribeStacksPolicy, [parameter(Mandatory = $false)] $RekognitionDetectOnlyPolicy, [parameter(Mandatory = $false)] $RekognitionLabelsPolicy, [parameter(Mandatory = $false)] $VPCAccessPolicy, [parameter(Mandatory = $false)] $SESEmailTemplateCrudPolicy, [parameter(Mandatory = $false)] $SQSPollerPolicy, [parameter(Mandatory = $false)] $SQSSendMessagePolicy, [parameter(Mandatory = $false)] $LambdaInvokePolicy, [parameter(Mandatory = $false)] $DynamoDBCrudPolicy, [parameter(Mandatory = $false)] $DynamoDBReadPolicy, [parameter(Mandatory = $false)] $DynamoDBStreamReadPolicy, [parameter(Mandatory = $false)] $SESSendBouncePolicy, [parameter(Mandatory = $false)] $SESCrudPolicy, [parameter(Mandatory = $false)] $SESBulkTemplatedCrudPolicy, [parameter(Mandatory = $false)] $ElasticsearchHttpPostPolicy, [parameter(Mandatory = $false)] $S3ReadPolicy, [parameter(Mandatory = $false)] $S3CrudPolicy, [parameter(Mandatory = $false)] $RekognitionNoDataAccessPolicy, [parameter(Mandatory = $false)] $RekognitionReadPolicy, [parameter(Mandatory = $false)] $RekognitionWriteOnlyAccessPolicy, [parameter(Mandatory = $false)] $SNSCrudPolicy, [parameter(Mandatory = $false)] $SNSPublishMessagePolicy, [parameter(Mandatory = $false)] $KinesisStreamReadPolicy, [parameter(Mandatory = $false)] $KinesisCrudPolicy, [parameter(Mandatory = $false)] $KMSDecryptPolicy, [parameter(Mandatory = $false)] $FilterLogEventsPolicy, [parameter(Mandatory = $false)] $StepFunctionsExecutionPolicy ) Process { $obj = [SAMFunctionSAMPolicyTemplate]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionSAMPolicyTemplate' function Add-VSSAMFunctionScheduleEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.ScheduleEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.ScheduleEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule .PARAMETER Schedule Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule PrimitiveType: String UpdateType: Immutable .PARAMETER Input Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionScheduleEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Schedule, [parameter(Mandatory = $false)] [object] $Input ) Process { $obj = [SAMFunctionScheduleEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionScheduleEvent' function Add-VSSAMFunctionSNSEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.SNSEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.SNSEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns .PARAMETER Topic Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionSNSEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Topic ) Process { $obj = [SAMFunctionSNSEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionSNSEvent' function Add-VSSAMFunctionSQSEvent { <# .SYNOPSIS Adds an AWS::Serverless::Function.SQSEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.SQSEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs .PARAMETER Queue Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs PrimitiveType: String UpdateType: Immutable .PARAMETER BatchSize Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs PrimitiveType: Integer UpdateType: Immutable .PARAMETER Enabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs PrimitiveType: Boolean UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionSQSEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Queue, [parameter(Mandatory = $false)] [object] $BatchSize, [parameter(Mandatory = $false)] [object] $Enabled ) Process { $obj = [SAMFunctionSQSEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionSQSEvent' function Add-VSSAMFunctionStateMachineSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.StateMachineSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.StateMachineSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER StateMachineName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionStateMachineSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $StateMachineName ) Process { $obj = [SAMFunctionStateMachineSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionStateMachineSAMPT' function Add-VSSAMFunctionStreamSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.StreamSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.StreamSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER StreamName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionStreamSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $StreamName ) Process { $obj = [SAMFunctionStreamSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionStreamSAMPT' function Add-VSSAMFunctionTableSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.TableSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.TableSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER TableName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionTableSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $TableName ) Process { $obj = [SAMFunctionTableSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionTableSAMPT' function Add-VSSAMFunctionTableStreamSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.TableStreamSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.TableStreamSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER TableName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .PARAMETER StreamName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionTableStreamSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $TableName, [parameter(Mandatory = $true)] [object] $StreamName ) Process { $obj = [SAMFunctionTableStreamSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionTableStreamSAMPT' function Add-VSSAMFunctionTopicSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::Function.TopicSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::Function.TopicSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER TopicName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionTopicSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $TopicName ) Process { $obj = [SAMFunctionTopicSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionTopicSAMPT' function Add-VSSAMFunctionVpcConfig { <# .SYNOPSIS Adds an AWS::Serverless::Function.VpcConfig resource property to the template. The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see VPC Settings: https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html. .DESCRIPTION Adds an AWS::Serverless::Function.VpcConfig resource property to the template. The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see VPC Settings: https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html. **Note** When you delete a function, AWS CloudFormation monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before AWS CloudFormation can delete the VPC's resources. To monitor network interfaces, AWS CloudFormation needs the ec2:DescribeNetworkInterfaces permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, AWS CloudFormation does not wait for network interfaces to be deleted. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html .PARAMETER SecurityGroupIds A list of VPC security groups IDs. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER SubnetIds A list of VPC subnet IDs. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html Type: List PrimitiveItemType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunctionVpcConfig])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] $SecurityGroupIds, [parameter(Mandatory = $true)] $SubnetIds ) Process { $obj = [SAMFunctionVpcConfig]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMFunctionVpcConfig' function Add-VSSAMLayerVersionS3Location { <# .SYNOPSIS Adds an AWS::Serverless::LayerVersion.S3Location resource property to the template. .DESCRIPTION Adds an AWS::Serverless::LayerVersion.S3Location resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object .PARAMETER Bucket Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Key Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Version Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMLayerVersionS3Location])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $true)] [object] $Key, [parameter(Mandatory = $false)] [object] $Version ) Process { $obj = [SAMLayerVersionS3Location]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMLayerVersionS3Location' function Add-VSSAMSimpleTablePrimaryKey { <# .SYNOPSIS Adds an AWS::Serverless::SimpleTable.PrimaryKey resource property to the template. .DESCRIPTION Adds an AWS::Serverless::SimpleTable.PrimaryKey resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object .PARAMETER Name Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object PrimitiveType: String UpdateType: Immutable .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMSimpleTablePrimaryKey])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $Name, [parameter(Mandatory = $true)] [object] $Type ) Process { $obj = [SAMSimpleTablePrimaryKey]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMSimpleTablePrimaryKey' function Add-VSSAMSimpleTableProvisionedThroughput { <# .SYNOPSIS Adds an AWS::Serverless::SimpleTable.ProvisionedThroughput resource property to the template. Throughput for the specified table, which consists of values for ReadCapacityUnits and WriteCapacityUnits. For more information about the contents of a provisioned throughput structure, see Amazon DynamoDB Table ProvisionedThroughput: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html. .DESCRIPTION Adds an AWS::Serverless::SimpleTable.ProvisionedThroughput resource property to the template. Throughput for the specified table, which consists of values for ReadCapacityUnits and WriteCapacityUnits. For more information about the contents of a provisioned throughput structure, see Amazon DynamoDB Table ProvisionedThroughput: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html. .LINK http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html .PARAMETER ReadCapacityUnits The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput in the *Amazon DynamoDB Developer Guide*. If read/write capacity mode is PAY_PER_REQUEST the value is set to 0. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html PrimitiveType: Integer UpdateType: Immutable .PARAMETER WriteCapacityUnits The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput in the *Amazon DynamoDB Developer Guide*. If read/write capacity mode is PAY_PER_REQUEST the value is set to 0. Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMSimpleTableProvisionedThroughput])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $ReadCapacityUnits, [parameter(Mandatory = $true)] [object] $WriteCapacityUnits ) Process { $obj = [SAMSimpleTableProvisionedThroughput]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMSimpleTableProvisionedThroughput' function Add-VSSAMSimpleTableSSESpecification { <# .SYNOPSIS Adds an AWS::Serverless::SimpleTable.SSESpecification resource property to the template. Represents the settings used to enable server-side encryption. .DESCRIPTION Adds an AWS::Serverless::SimpleTable.SSESpecification resource property to the template. Represents the settings used to enable server-side encryption. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html .PARAMETER SSEEnabled Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled true, server-side encryption type is set to KMS and an AWS managed CMK is used AWS KMS charges apply. If disabled false or not specified, server-side encryption is set to AWS owned CMK. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html PrimitiveType: Boolean UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMSimpleTableSSESpecification])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] [object] $SSEEnabled ) Process { $obj = [SAMSimpleTableSSESpecification]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMSimpleTableSSESpecification' function Add-VSSAMStateMachineApiEvent { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.ApiEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.ApiEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api .PARAMETER Path Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .PARAMETER Method Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .PARAMETER RestApiId Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineApiEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Path, [parameter(Mandatory = $true)] [object] $Method, [parameter(Mandatory = $false)] [object] $RestApiId ) Process { $obj = [SAMStateMachineApiEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineApiEvent' function Add-VSSAMStateMachineCloudWatchEventEvent { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.CloudWatchEventEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.CloudWatchEventEvent resource property to the template. .LINK https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html .PARAMETER Pattern Documentation: http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html PrimitiveType: Json UpdateType: Immutable .PARAMETER EventBusName Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .PARAMETER Input Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .PARAMETER InputPath Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineCloudWatchEventEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Pattern, [parameter(Mandatory = $false)] [object] $EventBusName, [parameter(Mandatory = $false)] [object] $Input, [parameter(Mandatory = $false)] [object] $InputPath ) Process { $obj = [SAMStateMachineCloudWatchEventEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineCloudWatchEventEvent' function Add-VSSAMStateMachineCloudWatchLogsLogGroup { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.CloudWatchLogsLogGroup resource property to the template. Defines a CloudWatch log group. .DESCRIPTION Adds an AWS::Serverless::StateMachine.CloudWatchLogsLogGroup resource property to the template. Defines a CloudWatch log group. **Note** CloudWatchLogsLogGroup is only valid when StateMachineType is set to EXPRESS. For more information see Standard Versus Express Workflows: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html in the AWS Step Functions Developer Guide. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup.html .PARAMETER LogGroupArn The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :* Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup.html PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineCloudWatchLogsLogGroup])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $LogGroupArn ) Process { $obj = [SAMStateMachineCloudWatchLogsLogGroup]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineCloudWatchLogsLogGroup' function Add-VSSAMStateMachineEventBridgeRuleEvent { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.EventBridgeRuleEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.EventBridgeRuleEvent resource property to the template. .LINK https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html .PARAMETER Pattern Documentation: http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html PrimitiveType: Json UpdateType: Immutable .PARAMETER EventBusName Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .PARAMETER Input Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .PARAMETER InputPath Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-cloudwatchevent.html PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineEventBridgeRuleEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Pattern, [parameter(Mandatory = $false)] [object] $EventBusName, [parameter(Mandatory = $false)] [object] $Input, [parameter(Mandatory = $false)] [object] $InputPath ) Process { $obj = [SAMStateMachineEventBridgeRuleEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineEventBridgeRuleEvent' function Add-VSSAMStateMachineEventSource { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.EventSource resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.EventSource resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object .PARAMETER Type Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object PrimitiveType: String UpdateType: Immutable .PARAMETER Properties Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-types Types: CloudWatchEventEvent EventBridgeRuleEvent ScheduleEvent ApiEvent UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineEventSource])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Type, [parameter(Mandatory = $true)] $Properties ) Process { $obj = [SAMStateMachineEventSource]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineEventSource' function Add-VSSAMStateMachineFunctionSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.FunctionSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.FunctionSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER FunctionName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineFunctionSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $FunctionName ) Process { $obj = [SAMStateMachineFunctionSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineFunctionSAMPT' function Add-VSSAMStateMachineIAMPolicyDocument { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.IAMPolicyDocument resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.IAMPolicyDocument resource property to the template. .LINK http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html .PARAMETER Statement Documentation: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html PrimitiveType: Json UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineIAMPolicyDocument])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [VSJson] $Statement ) Process { $obj = [SAMStateMachineIAMPolicyDocument]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineIAMPolicyDocument' function Add-VSSAMStateMachineLogDestination { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.LogDestination resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.LogDestination resource property to the template. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html#cfn-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup .PARAMETER CloudWatchLogsLogGroup Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html#cfn-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup Type: CloudWatchLogsLogGroup UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineLogDestination])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] $CloudWatchLogsLogGroup ) Process { $obj = [SAMStateMachineLogDestination]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineLogDestination' function Add-VSSAMStateMachineLoggingConfiguration { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.LoggingConfiguration resource property to the template. Defines what execution history events are logged and where they are logged. .DESCRIPTION Adds an AWS::Serverless::StateMachine.LoggingConfiguration resource property to the template. Defines what execution history events are logged and where they are logged. **Note** By default, the level is set to OFF. For more information see Log Levels: https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html in the AWS Step Functions User Guide. .LINK https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html .PARAMETER Destinations An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html Type: List ItemType: LogDestination UpdateType: Immutable .PARAMETER IncludeExecutionData Determines whether execution data is included in your log. When set to FALSE, data is excluded. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html PrimitiveType: Boolean UpdateType: Immutable .PARAMETER Level Defines which category of execution history events are logged. Documentation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineLoggingConfiguration])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Destinations, [parameter(Mandatory = $true)] [object] $IncludeExecutionData, [parameter(Mandatory = $true)] [object] $Level ) Process { $obj = [SAMStateMachineLoggingConfiguration]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineLoggingConfiguration' function Add-VSSAMStateMachineS3Location { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.S3Location resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.S3Location resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object .PARAMETER Bucket Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Key Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Version Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineS3Location])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Bucket, [parameter(Mandatory = $true)] [object] $Key, [parameter(Mandatory = $false)] [object] $Version ) Process { $obj = [SAMStateMachineS3Location]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineS3Location' function Add-VSSAMStateMachineSAMPolicyTemplate { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.SAMPolicyTemplate resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.SAMPolicyTemplate resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER LambdaInvokePolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: FunctionSAMPT UpdateType: Immutable .PARAMETER StepFunctionsExecutionPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst Type: StateMachineSAMPT UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineSAMPolicyTemplate])] [cmdletbinding()] Param( [parameter(Mandatory = $false)] $LambdaInvokePolicy, [parameter(Mandatory = $false)] $StepFunctionsExecutionPolicy ) Process { $obj = [SAMStateMachineSAMPolicyTemplate]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineSAMPolicyTemplate' function Add-VSSAMStateMachineScheduleEvent { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.ScheduleEvent resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.ScheduleEvent resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule .PARAMETER Schedule Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule PrimitiveType: String UpdateType: Immutable .PARAMETER Input Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineScheduleEvent])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $Schedule, [parameter(Mandatory = $false)] [object] $Input ) Process { $obj = [SAMStateMachineScheduleEvent]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineScheduleEvent' function Add-VSSAMStateMachineStateMachineSAMPT { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine.StateMachineSAMPT resource property to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine.StateMachineSAMPT resource property to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst .PARAMETER StateMachineName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/docs/policy_templates.rst PrimitiveType: String UpdateType: Immutable .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachineStateMachineSAMPT])] [cmdletbinding()] Param( [parameter(Mandatory = $true)] [object] $StateMachineName ) Process { $obj = [SAMStateMachineStateMachineSAMPT]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'Add-VSSAMStateMachineStateMachineSAMPT' function New-VSSAMApi { <# .SYNOPSIS Adds an AWS::Serverless::Api resource to the template. .DESCRIPTION Adds an AWS::Serverless::Api resource to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi .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: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: String UpdateType: Immutable .PARAMETER StageName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: String UpdateType: Immutable .PARAMETER DefinitionUri Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveTypes: String Types: S3Location UpdateType: Immutable .PARAMETER DefinitionBody Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: Json UpdateType: Immutable .PARAMETER CacheClusterEnabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: Boolean UpdateType: Immutable .PARAMETER CacheClusterSize Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: String UpdateType: Immutable .PARAMETER Variables Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER MethodSettings Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveItemType: Json Type: List UpdateType: Immutable .PARAMETER EndpointConfiguration Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: String UpdateType: Immutable .PARAMETER BinaryMediaTypes Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER Cors Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveTypes: String Types: CorsConfiguration UpdateType: Immutable .PARAMETER Auth Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi Type: Auth UpdateType: Immutable .PARAMETER TracingEnabled Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi PrimitiveType: Boolean UpdateType: Immutable .PARAMETER AccessLogSetting Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi Type: AccessLogSetting UpdateType: Immutable .PARAMETER OpenApiVersion Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi 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. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMApi])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] [object] $Name, [parameter(Mandatory = $true)] [object] $StageName, [parameter(Mandatory = $false)] $DefinitionUri, [parameter(Mandatory = $false)] [VSJson] $DefinitionBody, [parameter(Mandatory = $false)] [object] $CacheClusterEnabled, [parameter(Mandatory = $false)] [object] $CacheClusterSize, [parameter(Mandatory = $false)] [IDictionary] $Variables, [parameter(Mandatory = $false)] $MethodSettings, [parameter(Mandatory = $false)] [object] $EndpointConfiguration, [parameter(Mandatory = $false)] $BinaryMediaTypes, [parameter(Mandatory = $false)] $Cors, [parameter(Mandatory = $false)] $Auth, [parameter(Mandatory = $false)] [object] $TracingEnabled, [parameter(Mandatory = $false)] $AccessLogSetting, [parameter(Mandatory = $false)] [object] $OpenApiVersion, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMApi]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMApi' function New-VSSAMApplication { <# .SYNOPSIS Adds an AWS::Serverless::Application resource to the template. .DESCRIPTION Adds an AWS::Serverless::Application resource to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication .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 Location Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication PrimitiveTypes: String Types: ApplicationLocation UpdateType: Immutable .PARAMETER Parameters Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER NotificationArns Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER Tags Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER TimeoutInMinutes Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication PrimitiveType: Integer UpdateType: Immutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMApplication])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $true)] $Location, [parameter(Mandatory = $false)] [IDictionary] $Parameters, [parameter(Mandatory = $false)] $NotificationArns, [parameter(Mandatory = $false)] [IDictionary] $Tags, [parameter(Mandatory = $false)] [object] $TimeoutInMinutes, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMApplication]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMApplication' function New-VSSAMFunction { <# .SYNOPSIS Adds an AWS::Serverless::Function resource to the template. .DESCRIPTION Adds an AWS::Serverless::Function resource to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction .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 Handler Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Runtime Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER CodeUri Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveTypes: String Types: S3Location UpdateType: Immutable .PARAMETER FunctionName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER FileSystemConfigs Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html Type: List ItemType: FileSystemConfig UpdateType: Immutable .PARAMETER Description Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER MemorySize Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .PARAMETER Timeout Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .PARAMETER Role Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Policies Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveTypes: String PrimitiveItemTypes: String Types: IAMPolicyDocument ItemTypes: IAMPolicyDocument SAMPolicyTemplate UpdateType: Immutable .PARAMETER PermissionsBoundary Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER Environment Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: FunctionEnvironment UpdateType: Immutable .PARAMETER VpcConfig Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: VpcConfig UpdateType: Immutable .PARAMETER Events Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: Map ItemType: EventSource UpdateType: Immutable .PARAMETER Tags Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER Tracing Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER KmsKeyArn Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER DeadLetterQueue Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: DeadLetterQueue UpdateType: Immutable .PARAMETER DeploymentPreference Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: DeploymentPreference UpdateType: Immutable .PARAMETER Layers Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER AutoPublishAlias Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: String UpdateType: Immutable .PARAMETER ReservedConcurrentExecutions Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction PrimitiveType: Integer UpdateType: Immutable .PARAMETER ProvisionedConcurrencyConfig Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Type: ProvisionedConcurrencyConfig UpdateType: Immutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMFunction])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $true)] [object] $Handler, [parameter(Mandatory = $true)] [object] $Runtime, [parameter(Mandatory = $true)] $CodeUri, [parameter(Mandatory = $false)] [object] $FunctionName, [parameter(Mandatory = $false)] [object] $FileSystemConfigs, [parameter(Mandatory = $false)] [object] $Description, [parameter(Mandatory = $false)] [object] $MemorySize, [parameter(Mandatory = $false)] [object] $Timeout, [parameter(Mandatory = $false)] [object] $Role, [parameter(Mandatory = $false)] $Policies, [parameter(Mandatory = $false)] [object] $PermissionsBoundary, [parameter(Mandatory = $false)] $Environment, [parameter(Mandatory = $false)] $VpcConfig, [parameter(Mandatory = $false)] [object] $Events, [parameter(Mandatory = $false)] [IDictionary] $Tags, [parameter(Mandatory = $false)] [object] $Tracing, [parameter(Mandatory = $false)] [object] $KmsKeyArn, [parameter(Mandatory = $false)] $DeadLetterQueue, [parameter(Mandatory = $false)] $DeploymentPreference, [parameter(Mandatory = $false)] $Layers, [parameter(Mandatory = $false)] [object] $AutoPublishAlias, [parameter(Mandatory = $false)] [object] $ReservedConcurrentExecutions, [parameter(Mandatory = $false)] $ProvisionedConcurrencyConfig, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMFunction]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMFunction' function New-VSSAMLayerVersion { <# .SYNOPSIS Adds an AWS::Serverless::LayerVersion resource to the template. .DESCRIPTION Adds an AWS::Serverless::LayerVersion resource to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion .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 LayerName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion PrimitiveType: String UpdateType: Immutable .PARAMETER Description Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion PrimitiveType: String UpdateType: Immutable .PARAMETER ContentUri Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion PrimitiveTypes: String Types: S3Location UpdateType: Immutable .PARAMETER CompatibleRuntimes Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion Type: List PrimitiveItemType: String UpdateType: Immutable .PARAMETER LicenseInfo Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion PrimitiveType: String UpdateType: Immutable .PARAMETER RetentionPolicy Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion 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. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMLayerVersion])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] [object] $LayerName, [parameter(Mandatory = $false)] [object] $Description, [parameter(Mandatory = $false)] $ContentUri, [parameter(Mandatory = $false)] $CompatibleRuntimes, [parameter(Mandatory = $false)] [object] $LicenseInfo, [parameter(Mandatory = $false)] [object] $RetentionPolicy, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMLayerVersion]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMLayerVersion' function New-VSSAMSimpleTable { <# .SYNOPSIS Adds an AWS::Serverless::SimpleTable resource to the template. .DESCRIPTION Adds an AWS::Serverless::SimpleTable resource to the template. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable .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 PrimaryKey Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object Type: PrimaryKey UpdateType: Immutable .PARAMETER ProvisionedThroughput Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html Type: ProvisionedThroughput UpdateType: Immutable .PARAMETER Tags Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER TableName Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable PrimitiveType: String UpdateType: Immutable .PARAMETER SSESpecification Documentation: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable Type: SSESpecification UpdateType: Immutable .PARAMETER DeletionPolicy With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default. To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER UpdateReplacePolicy Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation. When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource. For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance. You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources. The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets. Note Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope. UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update. You must use one of the following options: "Delete","Retain","Snapshot" .PARAMETER DependsOn With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute. This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created. .PARAMETER Metadata The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMSimpleTable])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] $PrimaryKey, [parameter(Mandatory = $false)] $ProvisionedThroughput, [parameter(Mandatory = $false)] [IDictionary] $Tags, [parameter(Mandatory = $false)] [object] $TableName, [parameter(Mandatory = $false)] $SSESpecification, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMSimpleTable]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMSimpleTable' function New-VSSAMStateMachine { <# .SYNOPSIS Adds an AWS::Serverless::StateMachine resource to the template. .DESCRIPTION Adds an AWS::Serverless::StateMachine resource to the template. .LINK https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.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 Definition Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html PrimitiveType: Json UpdateType: Immutable .PARAMETER DefinitionSubstitutions Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER DefinitionUri Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html PrimitiveTypes: String Types: S3Location UpdateType: Immutable .PARAMETER Events Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html Type: Map ItemType: EventSource UpdateType: Immutable .PARAMETER Logging Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html Type: LoggingConfiguration UpdateType: Immutable .PARAMETER Name Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html PrimitiveType: String UpdateType: Immutable .PARAMETER Policies Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html PrimitiveTypes: String PrimitiveItemTypes: String Types: IAMPolicyDocument ItemTypes: IAMPolicyDocument SAMPolicyTemplate UpdateType: Immutable .PARAMETER Role Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html PrimitiveType: String UpdateType: Immutable .PARAMETER Tags Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html Type: Map PrimitiveItemType: String UpdateType: Immutable .PARAMETER Type Documentation: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html 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. This will be returned when describing the resource using AWS CLI. .PARAMETER UpdatePolicy Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group. You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here. .PARAMETER Condition Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned. .FUNCTIONALITY Vaporshell #> [OutputType([SAMStateMachine])] [cmdletbinding()] Param( [parameter(Mandatory = $true,Position = 0)] [ValidateLogicalId()] [string] $LogicalId, [parameter(Mandatory = $false)] [VSJson] $Definition, [parameter(Mandatory = $false)] [IDictionary] $DefinitionSubstitutions, [parameter(Mandatory = $false)] $DefinitionUri, [parameter(Mandatory = $false)] [object] $Events, [parameter(Mandatory = $false)] $Logging, [parameter(Mandatory = $false)] [object] $Name, [parameter(Mandatory = $false)] $Policies, [parameter(Mandatory = $false)] [object] $Role, [parameter(Mandatory = $false)] [IDictionary] $Tags, [parameter(Mandatory = $false)] [object] $Type, [parameter()] [DeletionPolicy] $DeletionPolicy, [parameter()] [UpdateReplacePolicy] $UpdateReplacePolicy, [parameter(Mandatory = $false)] [string[]] $DependsOn, [parameter(Mandatory = $false)] [VSJson] $Metadata, [parameter(Mandatory = $false)] [UpdatePolicy] $UpdatePolicy, [parameter(Mandatory = $false)] [string] $Condition ) Process { $obj = [SAMStateMachine]::new($PSBoundParameters) Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)" Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)" $obj } } Export-ModuleMember -Function 'New-VSSAMStateMachine' |