Public/Serverless/Property Types/Add-SAMEnvironmentVariable.ps1
function Add-SAMEnvironmentVariable { <# .SYNOPSIS The object describing the environment properties of a function. .DESCRIPTION The object describing the environment properties of a function. .LINK https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object .PARAMETER Hashtable A hashtable of environment variables .PARAMETER Name The name of the environment variable .PARAMETER Value The value of the environment variable .FUNCTIONALITY Serverless #> [OutputType('Vaporshell.Serverless.EnvironmentVariable')] [cmdletbinding(DefaultParameterSetName="Single")] Param ( [parameter(Mandatory = $true,Position=0,ParameterSetName="Hashtable")] [System.Collections.Hashtable] $Hashtable, [parameter(Mandatory = $true,Position=0,ParameterSetName="Single")] [System.String] $Name, [parameter(Mandatory = $true,Position=1,ParameterSetName="Single")] [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 ", ").")) } })] $Value ) if (!$Hashtable) { $Hashtable = @{ $Name = $Value } } $obj = @{ Variables = $Hashtable } $obj | Add-ObjectDetail -TypeName 'Vaporshell.Serverless.EnvironmentVariable' } |