VaporShell.CustomerProfiles.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 'CustomerProfilesIntegrationTask'"

class CustomerProfilesIntegrationTask : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationTask'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html'

    hidden [object] $_connectorOperator
    hidden [object] $_sourceFields
    hidden [object] $_destinationField
    hidden [object] $_taskType
    hidden [object] $_taskProperties

    [CustomerProfilesIntegrationConnectorOperator] $ConnectorOperator
    [string[]] $SourceFields
    [string] $DestinationField
    [string] $TaskType
    [CustomerProfilesIntegrationTaskPropertiesMap[]] $TaskProperties

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorOperator -Value {
            $this._connectorOperator
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationConnectorOperator], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorOperator = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceFields -Value {
            $this._sourceFields
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._sourceFields = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DestinationField -Value {
            $this._destinationField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._destinationField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskType -Value {
            $this._taskType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._taskType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskProperties -Value {
            $this._taskProperties
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationTaskPropertiesMap], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._taskProperties = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesObjectTypeKeyMap'"

class CustomerProfilesObjectTypeKeyMap : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesObjectTypeKeyMap'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html'

    hidden [object] $_name
    hidden [object] $_objectTypeKeyList

    [string] $Name
    [CustomerProfilesObjectTypeObjectTypeKey[]] $ObjectTypeKeyList

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationTriggerProperties'"

class CustomerProfilesIntegrationTriggerProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationTriggerProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html'

    hidden [object] $_scheduled

    [CustomerProfilesIntegrationScheduledTriggerProperties] $Scheduled

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationScheduledTriggerProperties'"

class CustomerProfilesIntegrationScheduledTriggerProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationScheduledTriggerProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html'

    hidden [object] $_scheduleExpression
    hidden [object] $_dataPullMode
    hidden [object] $_scheduleStartTime
    hidden [object] $_scheduleEndTime
    hidden [object] $_timezone
    hidden [object] $_scheduleOffset
    hidden [object] $_firstExecutionFrom

    [string] $ScheduleExpression
    [string] $DataPullMode
    [double] $ScheduleStartTime
    [double] $ScheduleEndTime
    [string] $Timezone
    [int] $ScheduleOffset
    [double] $FirstExecutionFrom

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleExpression -Value {
            $this._scheduleExpression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scheduleExpression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataPullMode -Value {
            $this._dataPullMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataPullMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleStartTime -Value {
            $this._scheduleStartTime
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scheduleStartTime = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleEndTime -Value {
            $this._scheduleEndTime
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scheduleEndTime = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Timezone -Value {
            $this._timezone
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timezone = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleOffset -Value {
            $this._scheduleOffset
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scheduleOffset = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FirstExecutionFrom -Value {
            $this._firstExecutionFrom
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firstExecutionFrom = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesObjectTypeFieldMap'"

class CustomerProfilesObjectTypeFieldMap : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesObjectTypeFieldMap'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html'

    hidden [object] $_name
    hidden [object] $_objectTypeField

    [string] $Name
    [CustomerProfilesObjectTypeObjectTypeField] $ObjectTypeField

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationS3SourceProperties'"

class CustomerProfilesIntegrationS3SourceProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationS3SourceProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html'

    hidden [object] $_bucketName
    hidden [object] $_bucketPrefix

    [string] $BucketName
    [string] $BucketPrefix

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

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

Write-Verbose "Importing class 'CustomerProfilesObjectTypeObjectTypeField'"

class CustomerProfilesObjectTypeObjectTypeField : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesObjectTypeObjectTypeField'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html'

    hidden [object] $_source
    hidden [object] $_target
    hidden [object] $_contentType

    [string] $Source
    [string] $Target
    [string] $ContentType

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationFlowDefinition'"

class CustomerProfilesIntegrationFlowDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationFlowDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html'

    hidden [object] $_flowName
    hidden [object] $_description
    hidden [object] $_kmsArn
    hidden [object] $_tasks
    hidden [object] $_triggerConfig
    hidden [object] $_sourceFlowConfig

    [string] $FlowName
    [string] $Description
    [string] $KmsArn
    [CustomerProfilesIntegrationTask[]] $Tasks
    [CustomerProfilesIntegrationTriggerConfig] $TriggerConfig
    [CustomerProfilesIntegrationSourceFlowConfig] $SourceFlowConfig

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FlowName -Value {
            $this._flowName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._flowName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this._description
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._description = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsArn -Value {
            $this._kmsArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kmsArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tasks -Value {
            $this._tasks
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationTask], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._tasks = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TriggerConfig -Value {
            $this._triggerConfig
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationTriggerConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._triggerConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceFlowConfig -Value {
            $this._sourceFlowConfig
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationSourceFlowConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sourceFlowConfig = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationIncrementalPullConfig'"

class CustomerProfilesIntegrationIncrementalPullConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationIncrementalPullConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html'

    hidden [object] $_datetimeTypeFieldName

    [string] $DatetimeTypeFieldName

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationMarketoSourceProperties'"

class CustomerProfilesIntegrationMarketoSourceProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationMarketoSourceProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html'

    hidden [object] $_object

    [string] $Object

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationTaskPropertiesMap'"

class CustomerProfilesIntegrationTaskPropertiesMap : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationTaskPropertiesMap'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html'

    hidden [object] $_operatorPropertyKey
    hidden [object] $_property

    [string] $OperatorPropertyKey
    [string] $Property

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationConnectorOperator'"

class CustomerProfilesIntegrationConnectorOperator : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationConnectorOperator'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html'

    hidden [object] $_marketo
    hidden [object] $_s3
    hidden [object] $_salesforce
    hidden [object] $_serviceNow
    hidden [object] $_zendesk

    [string] $Marketo
    [string] $S3
    [string] $Salesforce
    [string] $ServiceNow
    [string] $Zendesk

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Marketo -Value {
            $this._marketo
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._marketo = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3 -Value {
            $this._s3
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3 = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Salesforce -Value {
            $this._salesforce
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._salesforce = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceNow -Value {
            $this._serviceNow
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceNow = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Zendesk -Value {
            $this._zendesk
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._zendesk = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationZendeskSourceProperties'"

class CustomerProfilesIntegrationZendeskSourceProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationZendeskSourceProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html'

    hidden [object] $_object

    [string] $Object

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationSourceConnectorProperties'"

class CustomerProfilesIntegrationSourceConnectorProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationSourceConnectorProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html'

    hidden [object] $_marketo
    hidden [object] $_s3
    hidden [object] $_salesforce
    hidden [object] $_serviceNow
    hidden [object] $_zendesk

    [CustomerProfilesIntegrationMarketoSourceProperties] $Marketo
    [CustomerProfilesIntegrationS3SourceProperties] $S3
    [CustomerProfilesIntegrationSalesforceSourceProperties] $Salesforce
    [CustomerProfilesIntegrationServiceNowSourceProperties] $ServiceNow
    [CustomerProfilesIntegrationZendeskSourceProperties] $Zendesk

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Marketo -Value {
            $this._marketo
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationMarketoSourceProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._marketo = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3 -Value {
            $this._s3
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationS3SourceProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Salesforce -Value {
            $this._salesforce
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationSalesforceSourceProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._salesforce = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceNow -Value {
            $this._serviceNow
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationServiceNowSourceProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceNow = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Zendesk -Value {
            $this._zendesk
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationZendeskSourceProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._zendesk = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationServiceNowSourceProperties'"

class CustomerProfilesIntegrationServiceNowSourceProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationServiceNowSourceProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html'

    hidden [object] $_object

    [string] $Object

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationSalesforceSourceProperties'"

class CustomerProfilesIntegrationSalesforceSourceProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationSalesforceSourceProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html'

    hidden [object] $_object
    hidden [object] $_enableDynamicFieldUpdate
    hidden [object] $_includeDeletedRecords

    [string] $Object
    [bool] $EnableDynamicFieldUpdate
    [bool] $IncludeDeletedRecords

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

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

Write-Verbose "Importing class 'CustomerProfilesObjectTypeObjectTypeKey'"

class CustomerProfilesObjectTypeObjectTypeKey : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesObjectTypeObjectTypeKey'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html'

    hidden [object] $_fieldNames
    hidden [object] $_standardIdentifiers

    [string[]] $FieldNames
    [string[]] $StandardIdentifiers

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationTriggerConfig'"

class CustomerProfilesIntegrationTriggerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationTriggerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html'

    hidden [object] $_triggerType
    hidden [object] $_triggerProperties

    [string] $TriggerType
    [CustomerProfilesIntegrationTriggerProperties] $TriggerProperties

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

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

Write-Verbose "Importing class 'CustomerProfilesIntegrationSourceFlowConfig'"

class CustomerProfilesIntegrationSourceFlowConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCustomerProfilesIntegrationSourceFlowConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html'

    hidden [object] $_connectorType
    hidden [object] $_connectorProfileName
    hidden [object] $_incrementalPullConfig
    hidden [object] $_sourceConnectorProperties

    [string] $ConnectorType
    [string] $ConnectorProfileName
    [CustomerProfilesIntegrationIncrementalPullConfig] $IncrementalPullConfig
    [CustomerProfilesIntegrationSourceConnectorProperties] $SourceConnectorProperties

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorType -Value {
            $this._connectorType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorProfileName -Value {
            $this._connectorProfileName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorProfileName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncrementalPullConfig -Value {
            $this._incrementalPullConfig
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationIncrementalPullConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._incrementalPullConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceConnectorProperties -Value {
            $this._sourceConnectorProperties
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationSourceConnectorProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sourceConnectorProperties = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesDomain'"

class CustomerProfilesDomain : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCustomerProfilesDomain'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html'

    hidden [string[]] $_attributes = @('CreatedAt','LastUpdatedAt')
    hidden [object] $_condition

    [string] $Type = 'AWS::CustomerProfiles::Domain'
    [string] $DomainName
    [string] $DeadLetterQueueUrl
    [string] $DefaultEncryptionKey
    [int] $DefaultExpirationDays
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DomainName -Value {
            $this.Properties['DomainName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DomainName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeadLetterQueueUrl -Value {
            $this.Properties['DeadLetterQueueUrl']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeadLetterQueueUrl'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultEncryptionKey -Value {
            $this.Properties['DefaultEncryptionKey']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DefaultEncryptionKey'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultExpirationDays -Value {
            $this.Properties['DefaultExpirationDays']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DefaultExpirationDays'] = if ($cast = $value -as [int]) {
                $cast
            }
            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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesIntegration'"

class CustomerProfilesIntegration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCustomerProfilesIntegration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html'

    hidden [string[]] $_attributes = @('CreatedAt','LastUpdatedAt')
    hidden [object] $_condition

    [string] $Type = 'AWS::CustomerProfiles::Integration'
    [string] $DomainName
    [string] $Uri
    [CustomerProfilesIntegrationFlowDefinition] $FlowDefinition
    [string] $ObjectTypeName
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DomainName -Value {
            $this.Properties['DomainName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DomainName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Uri -Value {
            $this.Properties['Uri']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Uri'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FlowDefinition -Value {
            $this.Properties['FlowDefinition']
        } -SecondValue {
            param([ValidateType(([CustomerProfilesIntegrationFlowDefinition], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FlowDefinition'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectTypeName -Value {
            $this.Properties['ObjectTypeName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ObjectTypeName'] = 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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'CustomerProfilesObjectType'"

class CustomerProfilesObjectType : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCustomerProfilesObjectType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html'

    hidden [string[]] $_attributes = @('CreatedAt','LastUpdatedAt')
    hidden [object] $_condition

    [string] $Type = 'AWS::CustomerProfiles::ObjectType'
    [string] $DomainName
    [string] $ObjectTypeName
    [bool] $AllowProfileCreation
    [string] $Description
    [string] $EncryptionKey
    [int] $ExpirationDays
    [CustomerProfilesObjectTypeFieldMap[]] $Fields
    [CustomerProfilesObjectTypeKeyMap[]] $Keys
    [VSTag[]] $Tags
    [string] $TemplateId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DomainName -Value {
            $this.Properties['DomainName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DomainName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ObjectTypeName -Value {
            $this.Properties['ObjectTypeName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ObjectTypeName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowProfileCreation -Value {
            $this.Properties['AllowProfileCreation']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AllowProfileCreation'] = $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 EncryptionKey -Value {
            $this.Properties['EncryptionKey']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EncryptionKey'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExpirationDays -Value {
            $this.Properties['ExpirationDays']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExpirationDays'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Fields -Value {
            $this.Properties['Fields']
        } -SecondValue {
            param([ValidateType(([CustomerProfilesObjectTypeFieldMap], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Fields'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Keys -Value {
            $this.Properties['Keys']
        } -SecondValue {
            param([ValidateType(([CustomerProfilesObjectTypeKeyMap], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Keys'] = $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 TemplateId -Value {
            $this.Properties['TemplateId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TemplateId'] = 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
        }
    }

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