Public/Serverless/Property Types/Add-SAMSNSEventSource.ps1
function Add-SAMSNSEventSource { <# .SYNOPSIS Adds a SNS Event Source to a Serverless Application Model resource .DESCRIPTION The object describing an event source with type SNS. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns .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. .PARAMETER Topic Topic ARN. .FUNCTIONALITY Serverless #> [OutputType('Vaporshell.Serverless.EventSource.SNS')] [cmdletbinding()] Param ( [parameter(Mandatory = $true,Position = 0)] [ValidateScript( { if ($_ -match "^[a-zA-Z0-9]*$") { $true } else { $PSCmdlet.ThrowTerminatingError((New-VSError -String 'The LogicalID must be alphanumeric (a-z, A-Z, 0-9) and unique within the template.')) } })] [System.String] $LogicalId, [parameter(Mandatory = $true)] [ValidateScript( { $allowedTypes = "System.String","Vaporshell.Function" if ([string]$($_.PSTypeNames) -match "($(($allowedTypes|ForEach-Object{[RegEx]::Escape($_)}) -join '|'))") { $true } else { $PSCmdlet.ThrowTerminatingError((New-VSError -String "This parameter only accepts the following types: $($allowedTypes -join ", "). The current types of the value are: $($_.PSTypeNames -join ", ").")) } })] $Topic ) $Params = @{ LogicalId = $LogicalId Type = "SNS" Properties = @{ Topic = $Topic } } Add-SAMEventSource @Params | Add-ObjectDetail -TypeName 'Vaporshell.Serverless.EventSource.SNS' } |