VaporShell.S3ObjectLambda.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 'S3ObjectLambdaAccessPointObjectLambdaConfiguration'"

class S3ObjectLambdaAccessPointObjectLambdaConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSS3ObjectLambdaAccessPointObjectLambdaConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-objectlambdaconfiguration.html'

    hidden [object] $_supportingAccessPoint
    hidden [object] $_allowedFeatures
    hidden [object] $_cloudWatchMetricsEnabled
    hidden [object] $_transformationConfigurations

    [string] $SupportingAccessPoint
    [string[]] $AllowedFeatures
    [bool] $CloudWatchMetricsEnabled
    [S3ObjectLambdaAccessPointTransformationConfiguration[]] $TransformationConfigurations

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportingAccessPoint -Value {
            $this._supportingAccessPoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._supportingAccessPoint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowedFeatures -Value {
            $this._allowedFeatures
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._allowedFeatures = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudWatchMetricsEnabled -Value {
            $this._cloudWatchMetricsEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudWatchMetricsEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransformationConfigurations -Value {
            $this._transformationConfigurations
        } -SecondValue {
            param([ValidateType(([S3ObjectLambdaAccessPointTransformationConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._transformationConfigurations = $value
        }
    }

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

Write-Verbose "Importing class 'S3ObjectLambdaAccessPointTransformationConfiguration'"

class S3ObjectLambdaAccessPointTransformationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSS3ObjectLambdaAccessPointTransformationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html'

    hidden [object] $_actions
    hidden [VSJson] $_contentTransformation

    [string[]] $Actions
    [VSJson] $ContentTransformation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Actions -Value {
            $this._actions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._actions = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContentTransformation -Value {
            $this._contentTransformation
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._contentTransformation = [VSJson]::Transform($value)
            Write-Debug $this._contentTransformation
        }
    }

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

Write-Verbose "Importing class 'S3ObjectLambdaAccessPoint'"

class S3ObjectLambdaAccessPoint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSS3ObjectLambdaAccessPoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html'

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

    [string] $Type = 'AWS::S3ObjectLambda::AccessPoint'
    [string] $Name
    [S3ObjectLambdaAccessPointObjectLambdaConfiguration] $ObjectLambdaConfiguration
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $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 ObjectLambdaConfiguration -Value {
            $this.Properties['ObjectLambdaConfiguration']
        } -SecondValue {
            param([ValidateType(([S3ObjectLambdaAccessPointObjectLambdaConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ObjectLambdaConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'S3ObjectLambdaAccessPointPolicy'"

class S3ObjectLambdaAccessPointPolicy : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSS3ObjectLambdaAccessPointPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspointpolicy.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::S3ObjectLambda::AccessPointPolicy'
    [string] $ObjectLambdaAccessPoint
    [VSJson] $PolicyDocument
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectLambdaAccessPoint -Value {
            $this.Properties['ObjectLambdaAccessPoint']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ObjectLambdaAccessPoint'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyDocument -Value {
            $this.Properties['PolicyDocument']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['PolicyDocument'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['PolicyDocument']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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