VaporShell.PinpointEmail.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 'PinpointEmailConfigurationSetEventDestinationDimensionConfiguration'"

class PinpointEmailConfigurationSetEventDestinationDimensionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationDimensionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html'

    hidden [object] $_dimensionValueSource
    hidden [object] $_defaultDimensionValue
    hidden [object] $_dimensionName

    [string] $DimensionValueSource
    [string] $DefaultDimensionValue
    [string] $DimensionName

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetSendingOptions'"

class PinpointEmailConfigurationSetSendingOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetSendingOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html'

    hidden [object] $_sendingEnabled

    [bool] $SendingEnabled

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetReputationOptions'"

class PinpointEmailConfigurationSetReputationOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetReputationOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html'

    hidden [object] $_reputationMetricsEnabled

    [bool] $ReputationMetricsEnabled

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetTrackingOptions'"

class PinpointEmailConfigurationSetTrackingOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetTrackingOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html'

    hidden [object] $_customRedirectDomain

    [string] $CustomRedirectDomain

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestinationCloudWatchDestination'"

class PinpointEmailConfigurationSetEventDestinationCloudWatchDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationCloudWatchDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html'

    hidden [object] $_dimensionConfigurations

    [PinpointEmailConfigurationSetEventDestinationDimensionConfiguration[]] $DimensionConfigurations

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

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

Write-Verbose "Importing class 'PinpointEmailDedicatedIpPoolTags'"

class PinpointEmailDedicatedIpPoolTags : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailDedicatedIpPoolTags'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html'

    hidden [object] $_value
    hidden [object] $_key

    [string] $Value
    [string] $Key

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestinationSnsDestination'"

class PinpointEmailConfigurationSetEventDestinationSnsDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationSnsDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html'

    hidden [object] $_topicArn

    [string] $TopicArn

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetTags'"

class PinpointEmailConfigurationSetTags : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetTags'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html'

    hidden [object] $_value
    hidden [object] $_key

    [string] $Value
    [string] $Key

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestinationPinpointDestination'"

class PinpointEmailConfigurationSetEventDestinationPinpointDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationPinpointDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html'

    hidden [object] $_applicationArn

    [string] $ApplicationArn

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetDeliveryOptions'"

class PinpointEmailConfigurationSetDeliveryOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetDeliveryOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html'

    hidden [object] $_sendingPoolName

    [string] $SendingPoolName

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination'"

class PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html'

    hidden [object] $_deliveryStreamArn
    hidden [object] $_iamRoleArn

    [string] $DeliveryStreamArn
    [string] $IamRoleArn

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

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

Write-Verbose "Importing class 'PinpointEmailIdentityTags'"

class PinpointEmailIdentityTags : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailIdentityTags'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html'

    hidden [object] $_value
    hidden [object] $_key

    [string] $Value
    [string] $Key

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestinationEventDestination'"

class PinpointEmailConfigurationSetEventDestinationEventDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailConfigurationSetEventDestinationEventDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html'

    hidden [object] $_snsDestination
    hidden [object] $_cloudWatchDestination
    hidden [object] $_enabled
    hidden [object] $_matchingEventTypes
    hidden [object] $_pinpointDestination
    hidden [object] $_kinesisFirehoseDestination

    [PinpointEmailConfigurationSetEventDestinationSnsDestination] $SnsDestination
    [PinpointEmailConfigurationSetEventDestinationCloudWatchDestination] $CloudWatchDestination
    [bool] $Enabled
    [string[]] $MatchingEventTypes
    [PinpointEmailConfigurationSetEventDestinationPinpointDestination] $PinpointDestination
    [PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination] $KinesisFirehoseDestination

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SnsDestination -Value {
            $this._snsDestination
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetEventDestinationSnsDestination], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._snsDestination = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudWatchDestination -Value {
            $this._cloudWatchDestination
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetEventDestinationCloudWatchDestination], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudWatchDestination = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MatchingEventTypes -Value {
            $this._matchingEventTypes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._matchingEventTypes = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PinpointDestination -Value {
            $this._pinpointDestination
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetEventDestinationPinpointDestination], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pinpointDestination = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisFirehoseDestination -Value {
            $this._kinesisFirehoseDestination
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetEventDestinationKinesisFirehoseDestination], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesisFirehoseDestination = $value
        }
    }

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

Write-Verbose "Importing class 'PinpointEmailIdentityMailFromAttributes'"

class PinpointEmailIdentityMailFromAttributes : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSPinpointEmailIdentityMailFromAttributes'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html'

    hidden [object] $_mailFromDomain
    hidden [object] $_behaviorOnMxFailure

    [string] $MailFromDomain
    [string] $BehaviorOnMxFailure

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSetEventDestination'"

class PinpointEmailConfigurationSetEventDestination : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSPinpointEmailConfigurationSetEventDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationseteventdestination.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::PinpointEmail::ConfigurationSetEventDestination'
    [string] $EventDestinationName
    [string] $ConfigurationSetName
    [PinpointEmailConfigurationSetEventDestinationEventDestination] $EventDestination
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'PinpointEmailDedicatedIpPool'"

class PinpointEmailDedicatedIpPool : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSPinpointEmailDedicatedIpPool'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-dedicatedippool.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::PinpointEmail::DedicatedIpPool'
    [string] $PoolName
    [PinpointEmailDedicatedIpPoolTags[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'PinpointEmailIdentity'"

class PinpointEmailIdentity : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSPinpointEmailIdentity'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-identity.html'

    hidden [string[]] $_attributes = @('IdentityDNSRecordName3','IdentityDNSRecordName1','IdentityDNSRecordName2','IdentityDNSRecordValue3','IdentityDNSRecordValue2','IdentityDNSRecordValue1')
    hidden [object] $_condition

    [string] $Type = 'AWS::PinpointEmail::Identity'
    [bool] $FeedbackForwardingEnabled
    [bool] $DkimSigningEnabled
    [PinpointEmailIdentityTags[]] $Tags
    [string] $Name
    [PinpointEmailIdentityMailFromAttributes] $MailFromAttributes
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'PinpointEmailConfigurationSet'"

class PinpointEmailConfigurationSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSPinpointEmailConfigurationSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpointemail-configurationset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::PinpointEmail::ConfigurationSet'
    [PinpointEmailConfigurationSetSendingOptions] $SendingOptions
    [PinpointEmailConfigurationSetTrackingOptions] $TrackingOptions
    [PinpointEmailConfigurationSetReputationOptions] $ReputationOptions
    [PinpointEmailConfigurationSetDeliveryOptions] $DeliveryOptions
    [PinpointEmailConfigurationSetTags[]] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name SendingOptions -Value {
            $this.Properties['SendingOptions']
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetSendingOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SendingOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TrackingOptions -Value {
            $this.Properties['TrackingOptions']
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetTrackingOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TrackingOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReputationOptions -Value {
            $this.Properties['ReputationOptions']
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetReputationOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReputationOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeliveryOptions -Value {
            $this.Properties['DeliveryOptions']
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetDeliveryOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeliveryOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([PinpointEmailConfigurationSetTags], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Tags'] = $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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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