VaporShell.Lambda.Classes.ps1

using namespace System
using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.IO
using namespace System.Management.Automation
[CmdletBinding()]
Param()

Write-Verbose "Importing class 'LambdaFunctionVpcConfig'"

class LambdaFunctionVpcConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionVpcConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html'

    hidden [object] $_securityGroupIds
    hidden [object] $_subnetIds

    [string[]] $SecurityGroupIds
    [string[]] $SubnetIds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroupIds -Value {
            $this._securityGroupIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._securityGroupIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this._subnetIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subnetIds = @($value)
        }
    }

    LambdaFunctionVpcConfig() : base() {}
    LambdaFunctionVpcConfig([IDictionary] $props) : base($props) {}
    LambdaFunctionVpcConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaAliasProvisionedConcurrencyConfiguration'"

class LambdaAliasProvisionedConcurrencyConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaAliasProvisionedConcurrencyConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-provisionedconcurrencyconfiguration.html'

    hidden [object] $_provisionedConcurrentExecutions

    [int] $ProvisionedConcurrentExecutions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedConcurrentExecutions -Value {
            $this._provisionedConcurrentExecutions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._provisionedConcurrentExecutions = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    LambdaAliasProvisionedConcurrencyConfiguration() : base() {}
    LambdaAliasProvisionedConcurrencyConfiguration([IDictionary] $props) : base($props) {}
    LambdaAliasProvisionedConcurrencyConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionDeadLetterConfig'"

class LambdaFunctionDeadLetterConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionDeadLetterConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html'

    hidden [object] $_targetArn

    [string] $TargetArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetArn -Value {
            $this._targetArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaFunctionDeadLetterConfig() : base() {}
    LambdaFunctionDeadLetterConfig([IDictionary] $props) : base($props) {}
    LambdaFunctionDeadLetterConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionFileSystemConfig'"

class LambdaFunctionFileSystemConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionFileSystemConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html'

    hidden [object] $_arn
    hidden [object] $_localMountPath

    [string] $Arn
    [string] $LocalMountPath

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Arn -Value {
            $this._arn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._arn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalMountPath -Value {
            $this._localMountPath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._localMountPath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaFunctionFileSystemConfig() : base() {}
    LambdaFunctionFileSystemConfig([IDictionary] $props) : base($props) {}
    LambdaFunctionFileSystemConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventInvokeConfigOnFailure'"

class LambdaEventInvokeConfigOnFailure : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventInvokeConfigOnFailure'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html'

    hidden [object] $_destination

    [string] $Destination

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Destination -Value {
            $this._destination
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._destination = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaEventInvokeConfigOnFailure() : base() {}
    LambdaEventInvokeConfigOnFailure([IDictionary] $props) : base($props) {}
    LambdaEventInvokeConfigOnFailure([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionCode'"

class LambdaFunctionCode : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionCode'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html'

    hidden [object] $_s3Bucket
    hidden [object] $_s3Key
    hidden [object] $_s3ObjectVersion
    hidden [object] $_zipFile
    hidden [object] $_imageUri

    [string] $S3Bucket
    [string] $S3Key
    [string] $S3ObjectVersion
    [string] $ZipFile
    [string] $ImageUri

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Bucket -Value {
            $this._s3Bucket
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Bucket = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Key -Value {
            $this._s3Key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3ObjectVersion -Value {
            $this._s3ObjectVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3ObjectVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ZipFile -Value {
            $this._zipFile
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $final = if ($value -is [string] -and (Test-Path $value)) {
                $resolvedPath = (Resolve-Path $value).Path
                [File]::ReadAllText($resolvedPath)
            }
            else {
                $value
            }
            $this._zipFile = $final
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ImageUri -Value {
            $this._imageUri
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._imageUri = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaFunctionCode() : base() {}
    LambdaFunctionCode([IDictionary] $props) : base($props) {}
    LambdaFunctionCode([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaAliasAliasRoutingConfiguration'"

class LambdaAliasAliasRoutingConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaAliasAliasRoutingConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html'

    hidden [object] $_additionalVersionWeights

    [LambdaAliasVersionWeight[]] $AdditionalVersionWeights

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdditionalVersionWeights -Value {
            $this._additionalVersionWeights
        } -SecondValue {
            param([ValidateType(([LambdaAliasVersionWeight], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._additionalVersionWeights = $value
        }
    }

    LambdaAliasAliasRoutingConfiguration() : base() {}
    LambdaAliasAliasRoutingConfiguration([IDictionary] $props) : base($props) {}
    LambdaAliasAliasRoutingConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMappingSelfManagedEventSource'"

class LambdaEventSourceMappingSelfManagedEventSource : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventSourceMappingSelfManagedEventSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedeventsource.html'

    hidden [object] $_endpoints

    [LambdaEventSourceMappingEndpoints] $Endpoints

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Endpoints -Value {
            $this._endpoints
        } -SecondValue {
            param([ValidateType(([LambdaEventSourceMappingEndpoints], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._endpoints = $value
        }
    }

    LambdaEventSourceMappingSelfManagedEventSource() : base() {}
    LambdaEventSourceMappingSelfManagedEventSource([IDictionary] $props) : base($props) {}
    LambdaEventSourceMappingSelfManagedEventSource([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaLayerVersionContent'"

class LambdaLayerVersionContent : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaLayerVersionContent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html'

    hidden [object] $_s3ObjectVersion
    hidden [object] $_s3Bucket
    hidden [object] $_s3Key

    [string] $S3ObjectVersion
    [string] $S3Bucket
    [string] $S3Key

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3ObjectVersion -Value {
            $this._s3ObjectVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3ObjectVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Bucket -Value {
            $this._s3Bucket
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Bucket = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Key -Value {
            $this._s3Key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaLayerVersionContent() : base() {}
    LambdaLayerVersionContent([IDictionary] $props) : base($props) {}
    LambdaLayerVersionContent([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventInvokeConfigOnSuccess'"

class LambdaEventInvokeConfigOnSuccess : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventInvokeConfigOnSuccess'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html'

    hidden [object] $_destination

    [string] $Destination

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Destination -Value {
            $this._destination
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._destination = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaEventInvokeConfigOnSuccess() : base() {}
    LambdaEventInvokeConfigOnSuccess([IDictionary] $props) : base($props) {}
    LambdaEventInvokeConfigOnSuccess([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionTracingConfig'"

class LambdaFunctionTracingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionTracingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html'

    hidden [object] $_mode

    [string] $Mode

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Mode -Value {
            $this._mode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._mode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaFunctionTracingConfig() : base() {}
    LambdaFunctionTracingConfig([IDictionary] $props) : base($props) {}
    LambdaFunctionTracingConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventInvokeConfigDestinationConfig'"

class LambdaEventInvokeConfigDestinationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventInvokeConfigDestinationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html'

    hidden [object] $_onSuccess
    hidden [object] $_onFailure

    [LambdaEventInvokeConfigOnSuccess] $OnSuccess
    [LambdaEventInvokeConfigOnFailure] $OnFailure

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnSuccess -Value {
            $this._onSuccess
        } -SecondValue {
            param([ValidateType(([LambdaEventInvokeConfigOnSuccess], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onSuccess = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnFailure -Value {
            $this._onFailure
        } -SecondValue {
            param([ValidateType(([LambdaEventInvokeConfigOnFailure], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onFailure = $value
        }
    }

    LambdaEventInvokeConfigDestinationConfig() : base() {}
    LambdaEventInvokeConfigDestinationConfig([IDictionary] $props) : base($props) {}
    LambdaEventInvokeConfigDestinationConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionEnvironment'"

class LambdaFunctionEnvironment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionEnvironment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html'

    hidden [object] $_variables

    [string] $Variables

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variables -Value {
            $this._variables
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._variables = $value
        }
    }

    LambdaFunctionEnvironment() : base() {}
    LambdaFunctionEnvironment([IDictionary] $props) : base($props) {}
    LambdaFunctionEnvironment([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaCodeSigningConfigCodeSigningPolicies'"

class LambdaCodeSigningConfigCodeSigningPolicies : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaCodeSigningConfigCodeSigningPolicies'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-codesigningpolicies.html'

    hidden [object] $_untrustedArtifactOnDeployment

    [string] $UntrustedArtifactOnDeployment

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name UntrustedArtifactOnDeployment -Value {
            $this._untrustedArtifactOnDeployment
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._untrustedArtifactOnDeployment = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaCodeSigningConfigCodeSigningPolicies() : base() {}
    LambdaCodeSigningConfigCodeSigningPolicies([IDictionary] $props) : base($props) {}
    LambdaCodeSigningConfigCodeSigningPolicies([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaAliasVersionWeight'"

class LambdaAliasVersionWeight : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaAliasVersionWeight'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html'

    hidden [object] $_functionVersion
    hidden [object] $_functionWeight

    [string] $FunctionVersion
    [double] $FunctionWeight

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionVersion -Value {
            $this._functionVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._functionVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionWeight -Value {
            $this._functionWeight
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._functionWeight = $value
        }
    }

    LambdaAliasVersionWeight() : base() {}
    LambdaAliasVersionWeight([IDictionary] $props) : base($props) {}
    LambdaAliasVersionWeight([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaVersionProvisionedConcurrencyConfiguration'"

class LambdaVersionProvisionedConcurrencyConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaVersionProvisionedConcurrencyConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-version-provisionedconcurrencyconfiguration.html'

    hidden [object] $_provisionedConcurrentExecutions

    [int] $ProvisionedConcurrentExecutions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedConcurrentExecutions -Value {
            $this._provisionedConcurrentExecutions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._provisionedConcurrentExecutions = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    LambdaVersionProvisionedConcurrencyConfiguration() : base() {}
    LambdaVersionProvisionedConcurrencyConfiguration([IDictionary] $props) : base($props) {}
    LambdaVersionProvisionedConcurrencyConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunctionImageConfig'"

class LambdaFunctionImageConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaFunctionImageConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html'

    hidden [object] $_entryPoint
    hidden [object] $_command
    hidden [object] $_workingDirectory

    [string[]] $EntryPoint
    [string[]] $Command
    [string] $WorkingDirectory

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EntryPoint -Value {
            $this._entryPoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._entryPoint = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Command -Value {
            $this._command
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._command = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WorkingDirectory -Value {
            $this._workingDirectory
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._workingDirectory = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaFunctionImageConfig() : base() {}
    LambdaFunctionImageConfig([IDictionary] $props) : base($props) {}
    LambdaFunctionImageConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMappingOnFailure'"

class LambdaEventSourceMappingOnFailure : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventSourceMappingOnFailure'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html'

    hidden [object] $_destination

    [string] $Destination

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Destination -Value {
            $this._destination
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._destination = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaEventSourceMappingOnFailure() : base() {}
    LambdaEventSourceMappingOnFailure([IDictionary] $props) : base($props) {}
    LambdaEventSourceMappingOnFailure([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMappingSourceAccessConfiguration'"

class LambdaEventSourceMappingSourceAccessConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventSourceMappingSourceAccessConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html'

    hidden [object] $_type
    hidden [object] $_uRI

    [string] $Type
    [string] $URI

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name URI -Value {
            $this._uRI
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uRI = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    LambdaEventSourceMappingSourceAccessConfiguration() : base() {}
    LambdaEventSourceMappingSourceAccessConfiguration([IDictionary] $props) : base($props) {}
    LambdaEventSourceMappingSourceAccessConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMappingEndpoints'"

class LambdaEventSourceMappingEndpoints : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventSourceMappingEndpoints'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-endpoints.html'

    hidden [object] $_kafkaBootstrapServers

    [string[]] $KafkaBootstrapServers

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KafkaBootstrapServers -Value {
            $this._kafkaBootstrapServers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._kafkaBootstrapServers = @($value)
        }
    }

    LambdaEventSourceMappingEndpoints() : base() {}
    LambdaEventSourceMappingEndpoints([IDictionary] $props) : base($props) {}
    LambdaEventSourceMappingEndpoints([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaCodeSigningConfigAllowedPublishers'"

class LambdaCodeSigningConfigAllowedPublishers : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaCodeSigningConfigAllowedPublishers'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-allowedpublishers.html'

    hidden [object] $_signingProfileVersionArns

    [string[]] $SigningProfileVersionArns

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SigningProfileVersionArns -Value {
            $this._signingProfileVersionArns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._signingProfileVersionArns = @($value)
        }
    }

    LambdaCodeSigningConfigAllowedPublishers() : base() {}
    LambdaCodeSigningConfigAllowedPublishers([IDictionary] $props) : base($props) {}
    LambdaCodeSigningConfigAllowedPublishers([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMappingDestinationConfig'"

class LambdaEventSourceMappingDestinationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLambdaEventSourceMappingDestinationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html'

    hidden [object] $_onFailure

    [LambdaEventSourceMappingOnFailure] $OnFailure

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnFailure -Value {
            $this._onFailure
        } -SecondValue {
            param([ValidateType(([LambdaEventSourceMappingOnFailure], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onFailure = $value
        }
    }

    LambdaEventSourceMappingDestinationConfig() : base() {}
    LambdaEventSourceMappingDestinationConfig([IDictionary] $props) : base($props) {}
    LambdaEventSourceMappingDestinationConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaLayerVersion'"

class LambdaLayerVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaLayerVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::LayerVersion'
    [string[]] $CompatibleRuntimes
    [string] $LicenseInfo
    [string] $Description
    [string] $LayerName
    [LambdaLayerVersionContent] $Content
    [string[]] $CompatibleArchitectures
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CompatibleRuntimes -Value {
            $this.Properties['CompatibleRuntimes']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CompatibleRuntimes'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LicenseInfo -Value {
            $this.Properties['LicenseInfo']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LicenseInfo'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LayerName -Value {
            $this.Properties['LayerName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LayerName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Content -Value {
            $this.Properties['Content']
        } -SecondValue {
            param([ValidateType(([LambdaLayerVersionContent], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Content'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CompatibleArchitectures -Value {
            $this.Properties['CompatibleArchitectures']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CompatibleArchitectures'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaLayerVersion() : base() {}
    LambdaLayerVersion([IDictionary] $props) : base($props) {}
    LambdaLayerVersion([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaAlias'"

class LambdaAlias : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaAlias'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::Alias'
    [string] $Description
    [string] $FunctionName
    [string] $FunctionVersion
    [string] $Name
    [LambdaAliasProvisionedConcurrencyConfiguration] $ProvisionedConcurrencyConfig
    [LambdaAliasAliasRoutingConfiguration] $RoutingConfig
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionVersion -Value {
            $this.Properties['FunctionVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedConcurrencyConfig -Value {
            $this.Properties['ProvisionedConcurrencyConfig']
        } -SecondValue {
            param([ValidateType(([LambdaAliasProvisionedConcurrencyConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisionedConcurrencyConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoutingConfig -Value {
            $this.Properties['RoutingConfig']
        } -SecondValue {
            param([ValidateType(([LambdaAliasAliasRoutingConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoutingConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaAlias() : base() {}
    LambdaAlias([IDictionary] $props) : base($props) {}
    LambdaAlias([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaLayerVersionPermission'"

class LambdaLayerVersionPermission : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaLayerVersionPermission'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::LayerVersionPermission'
    [string] $Action
    [string] $LayerVersionArn
    [string] $OrganizationId
    [string] $Principal
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Action -Value {
            $this.Properties['Action']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Action'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LayerVersionArn -Value {
            $this.Properties['LayerVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LayerVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OrganizationId -Value {
            $this.Properties['OrganizationId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OrganizationId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Principal -Value {
            $this.Properties['Principal']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Principal'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaLayerVersionPermission() : base() {}
    LambdaLayerVersionPermission([IDictionary] $props) : base($props) {}
    LambdaLayerVersionPermission([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventInvokeConfig'"

class LambdaEventInvokeConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaEventInvokeConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::EventInvokeConfig'
    [string] $FunctionName
    [int] $MaximumRetryAttempts
    [LambdaEventInvokeConfigDestinationConfig] $DestinationConfig
    [string] $Qualifier
    [int] $MaximumEventAgeInSeconds
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumRetryAttempts -Value {
            $this.Properties['MaximumRetryAttempts']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaximumRetryAttempts'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DestinationConfig -Value {
            $this.Properties['DestinationConfig']
        } -SecondValue {
            param([ValidateType(([LambdaEventInvokeConfigDestinationConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DestinationConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Qualifier -Value {
            $this.Properties['Qualifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Qualifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumEventAgeInSeconds -Value {
            $this.Properties['MaximumEventAgeInSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaximumEventAgeInSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaEventInvokeConfig() : base() {}
    LambdaEventInvokeConfig([IDictionary] $props) : base($props) {}
    LambdaEventInvokeConfig([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaFunction'"

class LambdaFunction : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaFunction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html'

    hidden [string[]] $_attributes = @('Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::Function'
    [LambdaFunctionCode] $Code
    [LambdaFunctionDeadLetterConfig] $DeadLetterConfig
    [string] $Description
    [LambdaFunctionEnvironment] $Environment
    [LambdaFunctionFileSystemConfig[]] $FileSystemConfigs
    [string] $FunctionName
    [string] $Handler
    [string[]] $Architectures
    [string] $KmsKeyArn
    [string[]] $Layers
    [int] $MemorySize
    [int] $ReservedConcurrentExecutions
    [string] $Role
    [string] $Runtime
    [VSTag[]] $Tags
    [int] $Timeout
    [LambdaFunctionTracingConfig] $TracingConfig
    [LambdaFunctionVpcConfig] $VpcConfig
    [string] $CodeSigningConfigArn
    [LambdaFunctionImageConfig] $ImageConfig
    [string] $PackageType
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Code -Value {
            $this.Properties['Code']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionCode], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Code'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeadLetterConfig -Value {
            $this.Properties['DeadLetterConfig']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionDeadLetterConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeadLetterConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Environment -Value {
            $this.Properties['Environment']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionEnvironment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Environment'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemConfigs -Value {
            $this.Properties['FileSystemConfigs']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionFileSystemConfig], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['FileSystemConfigs'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Handler -Value {
            $this.Properties['Handler']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Handler'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Architectures -Value {
            $this.Properties['Architectures']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Architectures'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyArn -Value {
            $this.Properties['KmsKeyArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Layers -Value {
            $this.Properties['Layers']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Layers'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MemorySize -Value {
            $this.Properties['MemorySize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MemorySize'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReservedConcurrentExecutions -Value {
            $this.Properties['ReservedConcurrentExecutions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReservedConcurrentExecutions'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Role -Value {
            $this.Properties['Role']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Role'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Runtime -Value {
            $this.Properties['Runtime']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Runtime'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Timeout -Value {
            $this.Properties['Timeout']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Timeout'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TracingConfig -Value {
            $this.Properties['TracingConfig']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionTracingConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TracingConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcConfig -Value {
            $this.Properties['VpcConfig']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionVpcConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['VpcConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CodeSigningConfigArn -Value {
            $this.Properties['CodeSigningConfigArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CodeSigningConfigArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ImageConfig -Value {
            $this.Properties['ImageConfig']
        } -SecondValue {
            param([ValidateType(([LambdaFunctionImageConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ImageConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PackageType -Value {
            $this.Properties['PackageType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PackageType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaFunction() : base() {}
    LambdaFunction([IDictionary] $props) : base($props) {}
    LambdaFunction([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaPermission'"

class LambdaPermission : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaPermission'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::Permission'
    [string] $Action
    [string] $EventSourceToken
    [string] $FunctionName
    [string] $Principal
    [string] $SourceAccount
    [string] $SourceArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Action -Value {
            $this.Properties['Action']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Action'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventSourceToken -Value {
            $this.Properties['EventSourceToken']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EventSourceToken'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Principal -Value {
            $this.Properties['Principal']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Principal'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceAccount -Value {
            $this.Properties['SourceAccount']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceAccount'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceArn -Value {
            $this.Properties['SourceArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaPermission() : base() {}
    LambdaPermission([IDictionary] $props) : base($props) {}
    LambdaPermission([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaEventSourceMapping'"

class LambdaEventSourceMapping : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaEventSourceMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html'

    hidden [string[]] $_attributes = @('Id')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::EventSourceMapping'
    [int] $BatchSize
    [bool] $BisectBatchOnFunctionError
    [LambdaEventSourceMappingDestinationConfig] $DestinationConfig
    [bool] $Enabled
    [string] $EventSourceArn
    [VSJson] $FilterCriteria
    [string] $FunctionName
    [int] $MaximumBatchingWindowInSeconds
    [int] $MaximumRecordAgeInSeconds
    [int] $MaximumRetryAttempts
    [int] $ParallelizationFactor
    [string] $StartingPosition
    [double] $StartingPositionTimestamp
    [string[]] $Topics
    [string[]] $Queues
    [LambdaEventSourceMappingSourceAccessConfiguration[]] $SourceAccessConfigurations
    [int] $TumblingWindowInSeconds
    [string[]] $FunctionResponseTypes
    [LambdaEventSourceMappingSelfManagedEventSource] $SelfManagedEventSource
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name BatchSize -Value {
            $this.Properties['BatchSize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BatchSize'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BisectBatchOnFunctionError -Value {
            $this.Properties['BisectBatchOnFunctionError']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BisectBatchOnFunctionError'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DestinationConfig -Value {
            $this.Properties['DestinationConfig']
        } -SecondValue {
            param([ValidateType(([LambdaEventSourceMappingDestinationConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DestinationConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this.Properties['Enabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Enabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventSourceArn -Value {
            $this.Properties['EventSourceArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EventSourceArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FilterCriteria -Value {
            $this.Properties['FilterCriteria']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['FilterCriteria'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['FilterCriteria']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumBatchingWindowInSeconds -Value {
            $this.Properties['MaximumBatchingWindowInSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaximumBatchingWindowInSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumRecordAgeInSeconds -Value {
            $this.Properties['MaximumRecordAgeInSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaximumRecordAgeInSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumRetryAttempts -Value {
            $this.Properties['MaximumRetryAttempts']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaximumRetryAttempts'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParallelizationFactor -Value {
            $this.Properties['ParallelizationFactor']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ParallelizationFactor'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartingPosition -Value {
            $this.Properties['StartingPosition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StartingPosition'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartingPositionTimestamp -Value {
            $this.Properties['StartingPositionTimestamp']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StartingPositionTimestamp'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Topics -Value {
            $this.Properties['Topics']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Topics'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Queues -Value {
            $this.Properties['Queues']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Queues'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceAccessConfigurations -Value {
            $this.Properties['SourceAccessConfigurations']
        } -SecondValue {
            param([ValidateType(([LambdaEventSourceMappingSourceAccessConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SourceAccessConfigurations'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TumblingWindowInSeconds -Value {
            $this.Properties['TumblingWindowInSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TumblingWindowInSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionResponseTypes -Value {
            $this.Properties['FunctionResponseTypes']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['FunctionResponseTypes'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SelfManagedEventSource -Value {
            $this.Properties['SelfManagedEventSource']
        } -SecondValue {
            param([ValidateType(([LambdaEventSourceMappingSelfManagedEventSource], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SelfManagedEventSource'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaEventSourceMapping() : base() {}
    LambdaEventSourceMapping([IDictionary] $props) : base($props) {}
    LambdaEventSourceMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaVersion'"

class LambdaVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html'

    hidden [string[]] $_attributes = @('Version')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::Version'
    [string] $CodeSha256
    [string] $Description
    [string] $FunctionName
    [LambdaVersionProvisionedConcurrencyConfiguration] $ProvisionedConcurrencyConfig
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CodeSha256 -Value {
            $this.Properties['CodeSha256']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CodeSha256'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionName -Value {
            $this.Properties['FunctionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedConcurrencyConfig -Value {
            $this.Properties['ProvisionedConcurrencyConfig']
        } -SecondValue {
            param([ValidateType(([LambdaVersionProvisionedConcurrencyConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisionedConcurrencyConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaVersion() : base() {}
    LambdaVersion([IDictionary] $props) : base($props) {}
    LambdaVersion([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'LambdaCodeSigningConfig'"

class LambdaCodeSigningConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLambdaCodeSigningConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html'

    hidden [string[]] $_attributes = @('CodeSigningConfigId','CodeSigningConfigArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lambda::CodeSigningConfig'
    [string] $Description
    [LambdaCodeSigningConfigAllowedPublishers] $AllowedPublishers
    [LambdaCodeSigningConfigCodeSigningPolicies] $CodeSigningPolicies
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowedPublishers -Value {
            $this.Properties['AllowedPublishers']
        } -SecondValue {
            param([ValidateType(([LambdaCodeSigningConfigAllowedPublishers], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AllowedPublishers'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CodeSigningPolicies -Value {
            $this.Properties['CodeSigningPolicies']
        } -SecondValue {
            param([ValidateType(([LambdaCodeSigningConfigCodeSigningPolicies], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CodeSigningPolicies'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    LambdaCodeSigningConfig() : base() {}
    LambdaCodeSigningConfig([IDictionary] $props) : base($props) {}
    LambdaCodeSigningConfig([psobject] $props) : base($props) {}
}