VaporShell.KinesisAnalyticsV2.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 'KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html'

    hidden [object] $_mapping
    hidden [object] $_sqlType
    hidden [object] $_name

    [string] $Mapping
    [string] $SqlType
    [string] $Name

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Mapping -Value {
            $this._mapping
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._mapping = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SqlType -Value {
            $this._sqlType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqlType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCustomArtifactConfiguration'"

class KinesisAnalyticsV2ApplicationCustomArtifactConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCustomArtifactConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html'

    hidden [object] $_mavenReference
    hidden [object] $_s3ContentLocation
    hidden [object] $_artifactType

    [KinesisAnalyticsV2ApplicationMavenReference] $MavenReference
    [KinesisAnalyticsV2ApplicationS3ContentLocation] $S3ContentLocation
    [string] $ArtifactType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MavenReference -Value {
            $this._mavenReference
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationMavenReference], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._mavenReference = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3ContentLocation -Value {
            $this._s3ContentLocation
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationS3ContentLocation], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3ContentLocation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ArtifactType -Value {
            $this._artifactType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._artifactType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html'

    hidden [object] $_mappingParameters
    hidden [object] $_recordFormatType

    [KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters] $MappingParameters
    [string] $RecordFormatType

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationS3ContentLocation'"

class KinesisAnalyticsV2ApplicationS3ContentLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationS3ContentLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html'

    hidden [object] $_bucketARN
    hidden [object] $_fileKey
    hidden [object] $_objectVersion

    [string] $BucketARN
    [string] $FileKey
    [string] $ObjectVersion

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationDeployAsApplicationConfiguration'"

class KinesisAnalyticsV2ApplicationDeployAsApplicationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationDeployAsApplicationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html'

    hidden [object] $_s3ContentLocation

    [KinesisAnalyticsV2ApplicationS3ContentBaseLocation] $S3ContentLocation

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationPropertyGroup'"

class KinesisAnalyticsV2ApplicationPropertyGroup : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationPropertyGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html'

    hidden [VSJson] $_propertyMap
    hidden [object] $_propertyGroupId

    [VSJson] $PropertyMap
    [string] $PropertyGroupId

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationMappingParameters'"

class KinesisAnalyticsV2ApplicationMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html'

    hidden [object] $_jSONMappingParameters
    hidden [object] $_cSVMappingParameters

    [KinesisAnalyticsV2ApplicationJSONMappingParameters] $JSONMappingParameters
    [KinesisAnalyticsV2ApplicationCSVMappingParameters] $CSVMappingParameters

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name JSONMappingParameters -Value {
            $this._jSONMappingParameters
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationJSONMappingParameters], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._jSONMappingParameters = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CSVMappingParameters -Value {
            $this._cSVMappingParameters
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationCSVMappingParameters], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cSVMappingParameters = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationInputParallelism'"

class KinesisAnalyticsV2ApplicationInputParallelism : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationInputParallelism'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html'

    hidden [object] $_count

    [int] $Count

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput'"

class KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput'"

class KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration'"

class KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationFlinkApplicationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html'

    hidden [object] $_checkpointConfiguration
    hidden [object] $_parallelismConfiguration
    hidden [object] $_monitoringConfiguration

    [KinesisAnalyticsV2ApplicationCheckpointConfiguration] $CheckpointConfiguration
    [KinesisAnalyticsV2ApplicationParallelismConfiguration] $ParallelismConfiguration
    [KinesisAnalyticsV2ApplicationMonitoringConfiguration] $MonitoringConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CheckpointConfiguration -Value {
            $this._checkpointConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationCheckpointConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._checkpointConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParallelismConfiguration -Value {
            $this._parallelismConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationParallelismConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parallelismConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MonitoringConfiguration -Value {
            $this._monitoringConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationMonitoringConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._monitoringConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationInput'"

class KinesisAnalyticsV2ApplicationInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html'

    hidden [object] $_namePrefix
    hidden [object] $_inputSchema
    hidden [object] $_kinesisStreamsInput
    hidden [object] $_kinesisFirehoseInput
    hidden [object] $_inputProcessingConfiguration
    hidden [object] $_inputParallelism

    [string] $NamePrefix
    [KinesisAnalyticsV2ApplicationInputSchema] $InputSchema
    [KinesisAnalyticsV2ApplicationKinesisStreamsInput] $KinesisStreamsInput
    [KinesisAnalyticsV2ApplicationKinesisFirehoseInput] $KinesisFirehoseInput
    [KinesisAnalyticsV2ApplicationInputProcessingConfiguration] $InputProcessingConfiguration
    [KinesisAnalyticsV2ApplicationInputParallelism] $InputParallelism

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name NamePrefix -Value {
            $this._namePrefix
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._namePrefix = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InputSchema -Value {
            $this._inputSchema
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationInputSchema], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._inputSchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisStreamsInput -Value {
            $this._kinesisStreamsInput
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationKinesisStreamsInput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesisStreamsInput = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisFirehoseInput -Value {
            $this._kinesisFirehoseInput
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationKinesisFirehoseInput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesisFirehoseInput = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InputProcessingConfiguration -Value {
            $this._inputProcessingConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationInputProcessingConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._inputProcessingConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InputParallelism -Value {
            $this._inputParallelism
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationInputParallelism], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._inputParallelism = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration'"

class KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html'

    hidden [object] $_snapshotsEnabled

    [bool] $SnapshotsEnabled

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationKinesisFirehoseInput'"

class KinesisAnalyticsV2ApplicationKinesisFirehoseInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationKinesisFirehoseInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationInputSchema'"

class KinesisAnalyticsV2ApplicationInputSchema : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationInputSchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html'

    hidden [object] $_recordEncoding
    hidden [object] $_recordColumns
    hidden [object] $_recordFormat

    [string] $RecordEncoding
    [KinesisAnalyticsV2ApplicationRecordColumn[]] $RecordColumns
    [KinesisAnalyticsV2ApplicationRecordFormat] $RecordFormat

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordEncoding -Value {
            $this._recordEncoding
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._recordEncoding = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordColumns -Value {
            $this._recordColumns
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationRecordColumn], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._recordColumns = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordFormat -Value {
            $this._recordFormat
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationRecordFormat], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._recordFormat = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationParallelismConfiguration'"

class KinesisAnalyticsV2ApplicationParallelismConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationParallelismConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html'

    hidden [object] $_configurationType
    hidden [object] $_parallelismPerKPU
    hidden [object] $_autoScalingEnabled
    hidden [object] $_parallelism

    [string] $ConfigurationType
    [int] $ParallelismPerKPU
    [bool] $AutoScalingEnabled
    [int] $Parallelism

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConfigurationType -Value {
            $this._configurationType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._configurationType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParallelismPerKPU -Value {
            $this._parallelismPerKPU
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parallelismPerKPU = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoScalingEnabled -Value {
            $this._autoScalingEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._autoScalingEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Parallelism -Value {
            $this._parallelism
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parallelism = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationMonitoringConfiguration'"

class KinesisAnalyticsV2ApplicationMonitoringConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationMonitoringConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html'

    hidden [object] $_configurationType
    hidden [object] $_metricsLevel
    hidden [object] $_logLevel

    [string] $ConfigurationType
    [string] $MetricsLevel
    [string] $LogLevel

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutputDestinationSchema'"

class KinesisAnalyticsV2ApplicationOutputDestinationSchema : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationOutputDestinationSchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html'

    hidden [object] $_recordFormatType

    [string] $RecordFormatType

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutputOutput'"

class KinesisAnalyticsV2ApplicationOutputOutput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationOutputOutput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html'

    hidden [object] $_destinationSchema
    hidden [object] $_lambdaOutput
    hidden [object] $_kinesisFirehoseOutput
    hidden [object] $_kinesisStreamsOutput
    hidden [object] $_name

    [KinesisAnalyticsV2ApplicationOutputDestinationSchema] $DestinationSchema
    [KinesisAnalyticsV2ApplicationOutputLambdaOutput] $LambdaOutput
    [KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput] $KinesisFirehoseOutput
    [KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput] $KinesisStreamsOutput
    [string] $Name

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DestinationSchema -Value {
            $this._destinationSchema
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationOutputDestinationSchema], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._destinationSchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LambdaOutput -Value {
            $this._lambdaOutput
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationOutputLambdaOutput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambdaOutput = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisFirehoseOutput -Value {
            $this._kinesisFirehoseOutput
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationOutputKinesisFirehoseOutput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesisFirehoseOutput = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisStreamsOutput -Value {
            $this._kinesisStreamsOutput
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationOutputKinesisStreamsOutput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesisStreamsOutput = $value
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCustomArtifactsConfiguration'"

class KinesisAnalyticsV2ApplicationCustomArtifactsConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCustomArtifactsConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactsconfiguration.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationSqlApplicationConfiguration'"

class KinesisAnalyticsV2ApplicationSqlApplicationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationSqlApplicationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html'

    hidden [object] $_inputs

    [KinesisAnalyticsV2ApplicationInput[]] $Inputs

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationInputProcessingConfiguration'"

class KinesisAnalyticsV2ApplicationInputProcessingConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationInputProcessingConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html'

    hidden [object] $_inputLambdaProcessor

    [KinesisAnalyticsV2ApplicationInputLambdaProcessor] $InputLambdaProcessor

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationApplicationCodeConfiguration'"

class KinesisAnalyticsV2ApplicationApplicationCodeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationApplicationCodeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html'

    hidden [object] $_codeContentType
    hidden [object] $_codeContent

    [string] $CodeContentType
    [KinesisAnalyticsV2ApplicationCodeContent] $CodeContent

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutputLambdaOutput'"

class KinesisAnalyticsV2ApplicationOutputLambdaOutput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationOutputLambdaOutput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationZeppelinApplicationConfiguration'"

class KinesisAnalyticsV2ApplicationZeppelinApplicationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationZeppelinApplicationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html'

    hidden [object] $_catalogConfiguration
    hidden [object] $_monitoringConfiguration
    hidden [object] $_deployAsApplicationConfiguration
    hidden [object] $_customArtifactsConfiguration

    [KinesisAnalyticsV2ApplicationCatalogConfiguration] $CatalogConfiguration
    [KinesisAnalyticsV2ApplicationZeppelinMonitoringConfiguration] $MonitoringConfiguration
    [KinesisAnalyticsV2ApplicationDeployAsApplicationConfiguration] $DeployAsApplicationConfiguration
    [KinesisAnalyticsV2ApplicationCustomArtifactsConfiguration] $CustomArtifactsConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CatalogConfiguration -Value {
            $this._catalogConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationCatalogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._catalogConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MonitoringConfiguration -Value {
            $this._monitoringConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationZeppelinMonitoringConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._monitoringConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeployAsApplicationConfiguration -Value {
            $this._deployAsApplicationConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationDeployAsApplicationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deployAsApplicationConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomArtifactsConfiguration -Value {
            $this._customArtifactsConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationCustomArtifactsConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customArtifactsConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html'

    hidden [object] $_recordRowPath

    [string] $RecordRowPath

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption'"

class KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html'

    hidden [object] $_logStreamARN

    [string] $LogStreamARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationMavenReference'"

class KinesisAnalyticsV2ApplicationMavenReference : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationMavenReference'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mavenreference.html'

    hidden [object] $_artifactId
    hidden [object] $_version
    hidden [object] $_groupId

    [string] $ArtifactId
    [string] $Version
    [string] $GroupId

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationKinesisStreamsInput'"

class KinesisAnalyticsV2ApplicationKinesisStreamsInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationKinesisStreamsInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCheckpointConfiguration'"

class KinesisAnalyticsV2ApplicationCheckpointConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCheckpointConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html'

    hidden [object] $_configurationType
    hidden [object] $_checkpointInterval
    hidden [object] $_minPauseBetweenCheckpoints
    hidden [object] $_checkpointingEnabled

    [string] $ConfigurationType
    [int] $CheckpointInterval
    [int] $MinPauseBetweenCheckpoints
    [bool] $CheckpointingEnabled

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConfigurationType -Value {
            $this._configurationType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._configurationType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CheckpointInterval -Value {
            $this._checkpointInterval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._checkpointInterval = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinPauseBetweenCheckpoints -Value {
            $this._minPauseBetweenCheckpoints
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minPauseBetweenCheckpoints = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CheckpointingEnabled -Value {
            $this._checkpointingEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._checkpointingEnabled = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationZeppelinMonitoringConfiguration'"

class KinesisAnalyticsV2ApplicationZeppelinMonitoringConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationZeppelinMonitoringConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html'

    hidden [object] $_logLevel

    [string] $LogLevel

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationS3ContentBaseLocation'"

class KinesisAnalyticsV2ApplicationS3ContentBaseLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationS3ContentBaseLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentbaselocation.html'

    hidden [object] $_bucketARN
    hidden [object] $_basePath

    [string] $BucketARN
    [string] $BasePath

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html'

    hidden [object] $_referenceSchema
    hidden [object] $_tableName
    hidden [object] $_s3ReferenceDataSource

    [KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema] $ReferenceSchema
    [string] $TableName
    [KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource] $S3ReferenceDataSource

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReferenceSchema -Value {
            $this._referenceSchema
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._referenceSchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3ReferenceDataSource -Value {
            $this._s3ReferenceDataSource
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3ReferenceDataSource = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationInputLambdaProcessor'"

class KinesisAnalyticsV2ApplicationInputLambdaProcessor : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationInputLambdaProcessor'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html'

    hidden [object] $_resourceARN

    [string] $ResourceARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html'

    hidden [object] $_jSONMappingParameters
    hidden [object] $_cSVMappingParameters

    [KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters] $JSONMappingParameters
    [KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters] $CSVMappingParameters

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name JSONMappingParameters -Value {
            $this._jSONMappingParameters
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceJSONMappingParameters], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._jSONMappingParameters = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CSVMappingParameters -Value {
            $this._cSVMappingParameters
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cSVMappingParameters = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationRecordColumn'"

class KinesisAnalyticsV2ApplicationRecordColumn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationRecordColumn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html'

    hidden [object] $_mapping
    hidden [object] $_sqlType
    hidden [object] $_name

    [string] $Mapping
    [string] $SqlType
    [string] $Name

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Mapping -Value {
            $this._mapping
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._mapping = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SqlType -Value {
            $this._sqlType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqlType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCSVMappingParameters'"

class KinesisAnalyticsV2ApplicationCSVMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCSVMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html'

    hidden [object] $_recordRowDelimiter
    hidden [object] $_recordColumnDelimiter

    [string] $RecordRowDelimiter
    [string] $RecordColumnDelimiter

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationRecordFormat'"

class KinesisAnalyticsV2ApplicationRecordFormat : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationRecordFormat'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html'

    hidden [object] $_mappingParameters
    hidden [object] $_recordFormatType

    [KinesisAnalyticsV2ApplicationMappingParameters] $MappingParameters
    [string] $RecordFormatType

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationGlueDataCatalogConfiguration'"

class KinesisAnalyticsV2ApplicationGlueDataCatalogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationGlueDataCatalogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-gluedatacatalogconfiguration.html'

    hidden [object] $_databaseARN

    [string] $DatabaseARN

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationJSONMappingParameters'"

class KinesisAnalyticsV2ApplicationJSONMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationJSONMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html'

    hidden [object] $_recordRowPath

    [string] $RecordRowPath

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCodeContent'"

class KinesisAnalyticsV2ApplicationCodeContent : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCodeContent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html'

    hidden [object] $_zipFileContent
    hidden [object] $_s3ContentLocation
    hidden [object] $_textContent

    [string] $ZipFileContent
    [KinesisAnalyticsV2ApplicationS3ContentLocation] $S3ContentLocation
    [string] $TextContent

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceS3ReferenceDataSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html'

    hidden [object] $_bucketARN
    hidden [object] $_fileKey

    [string] $BucketARN
    [string] $FileKey

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationApplicationConfiguration'"

class KinesisAnalyticsV2ApplicationApplicationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationApplicationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html'

    hidden [object] $_applicationCodeConfiguration
    hidden [object] $_environmentProperties
    hidden [object] $_flinkApplicationConfiguration
    hidden [object] $_sqlApplicationConfiguration
    hidden [object] $_zeppelinApplicationConfiguration
    hidden [object] $_applicationSnapshotConfiguration

    [KinesisAnalyticsV2ApplicationApplicationCodeConfiguration] $ApplicationCodeConfiguration
    [KinesisAnalyticsV2ApplicationEnvironmentProperties] $EnvironmentProperties
    [KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration] $FlinkApplicationConfiguration
    [KinesisAnalyticsV2ApplicationSqlApplicationConfiguration] $SqlApplicationConfiguration
    [KinesisAnalyticsV2ApplicationZeppelinApplicationConfiguration] $ZeppelinApplicationConfiguration
    [KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration] $ApplicationSnapshotConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationCodeConfiguration -Value {
            $this._applicationCodeConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationApplicationCodeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._applicationCodeConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnvironmentProperties -Value {
            $this._environmentProperties
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationEnvironmentProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._environmentProperties = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FlinkApplicationConfiguration -Value {
            $this._flinkApplicationConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationFlinkApplicationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._flinkApplicationConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SqlApplicationConfiguration -Value {
            $this._sqlApplicationConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationSqlApplicationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqlApplicationConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ZeppelinApplicationConfiguration -Value {
            $this._zeppelinApplicationConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationZeppelinApplicationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._zeppelinApplicationConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationSnapshotConfiguration -Value {
            $this._applicationSnapshotConfiguration
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationApplicationSnapshotConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._applicationSnapshotConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationEnvironmentProperties'"

class KinesisAnalyticsV2ApplicationEnvironmentProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationEnvironmentProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html'

    hidden [object] $_propertyGroups

    [KinesisAnalyticsV2ApplicationPropertyGroup[]] $PropertyGroups

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceReferenceSchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html'

    hidden [object] $_recordEncoding
    hidden [object] $_recordColumns
    hidden [object] $_recordFormat

    [string] $RecordEncoding
    [KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn[]] $RecordColumns
    [KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat] $RecordFormat

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordEncoding -Value {
            $this._recordEncoding
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._recordEncoding = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordColumns -Value {
            $this._recordColumns
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceRecordColumn], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._recordColumns = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordFormat -Value {
            $this._recordFormat
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationReferenceDataSourceRecordFormat], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._recordFormat = $value
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCatalogConfiguration'"

class KinesisAnalyticsV2ApplicationCatalogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationCatalogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html'

    hidden [object] $_glueDataCatalogConfiguration

    [KinesisAnalyticsV2ApplicationGlueDataCatalogConfiguration] $GlueDataCatalogConfiguration

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters'"

class KinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKinesisAnalyticsV2ApplicationReferenceDataSourceCSVMappingParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html'

    hidden [object] $_recordRowDelimiter
    hidden [object] $_recordColumnDelimiter

    [string] $RecordRowDelimiter
    [string] $RecordColumnDelimiter

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationCloudWatchLoggingOption'"

class KinesisAnalyticsV2ApplicationCloudWatchLoggingOption : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption'
    [string] $ApplicationName
    [KinesisAnalyticsV2ApplicationCloudWatchLoggingOptionCloudWatchLoggingOption] $CloudWatchLoggingOption
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2Application'"

class KinesisAnalyticsV2Application : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKinesisAnalyticsV2Application'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::KinesisAnalyticsV2::Application'
    [string] $ApplicationName
    [string] $RuntimeEnvironment
    [string] $ApplicationMode
    [KinesisAnalyticsV2ApplicationApplicationConfiguration] $ApplicationConfiguration
    [string] $ApplicationDescription
    [VSTag[]] $Tags
    [string] $ServiceExecutionRole
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationName -Value {
            $this.Properties['ApplicationName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApplicationName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RuntimeEnvironment -Value {
            $this.Properties['RuntimeEnvironment']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RuntimeEnvironment'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationMode -Value {
            $this.Properties['ApplicationMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApplicationMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationConfiguration -Value {
            $this.Properties['ApplicationConfiguration']
        } -SecondValue {
            param([ValidateType(([KinesisAnalyticsV2ApplicationApplicationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApplicationConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationDescription -Value {
            $this.Properties['ApplicationDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApplicationDescription'] = 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 ServiceExecutionRole -Value {
            $this.Properties['ServiceExecutionRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServiceExecutionRole'] = 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
        }
    }

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationOutput'"

class KinesisAnalyticsV2ApplicationOutput : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKinesisAnalyticsV2ApplicationOutput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::KinesisAnalyticsV2::ApplicationOutput'
    [string] $ApplicationName
    [KinesisAnalyticsV2ApplicationOutputOutput] $Output
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'KinesisAnalyticsV2ApplicationReferenceDataSource'"

class KinesisAnalyticsV2ApplicationReferenceDataSource : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKinesisAnalyticsV2ApplicationReferenceDataSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource'
    [string] $ApplicationName
    [KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource] $ReferenceDataSource
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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