VaporShell.Timestream.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 'TimestreamScheduledQueryNotificationConfiguration'"

class TimestreamScheduledQueryNotificationConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryNotificationConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-notificationconfiguration.html'

    hidden [object] $_snsConfiguration

    [TimestreamScheduledQuerySnsConfiguration] $SnsConfiguration

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

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

Write-Verbose "Importing class 'TimestreamScheduledQuerySnsConfiguration'"

class TimestreamScheduledQuerySnsConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQuerySnsConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html'

    hidden [object] $_topicArn

    [string] $TopicArn

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryTimestreamConfiguration'"

class TimestreamScheduledQueryTimestreamConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryTimestreamConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-timestreamconfiguration.html'

    hidden [object] $_databaseName
    hidden [object] $_tableName
    hidden [object] $_timeColumn
    hidden [object] $_dimensionMappings
    hidden [object] $_multiMeasureMappings
    hidden [object] $_mixedMeasureMappings
    hidden [object] $_measureNameColumn

    [string] $DatabaseName
    [string] $TableName
    [string] $TimeColumn
    [TimestreamScheduledQueryDimensionMapping[]] $DimensionMappings
    [TimestreamScheduledQueryMultiMeasureMappings] $MultiMeasureMappings
    [TimestreamScheduledQueryMixedMeasureMapping[]] $MixedMeasureMappings
    [string] $MeasureNameColumn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseName -Value {
            $this._databaseName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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 TimeColumn -Value {
            $this._timeColumn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeColumn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DimensionMappings -Value {
            $this._dimensionMappings
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryDimensionMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dimensionMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MultiMeasureMappings -Value {
            $this._multiMeasureMappings
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryMultiMeasureMappings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._multiMeasureMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MixedMeasureMappings -Value {
            $this._mixedMeasureMappings
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryMixedMeasureMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._mixedMeasureMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MeasureNameColumn -Value {
            $this._measureNameColumn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._measureNameColumn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'TimestreamScheduledQueryS3Configuration'"

class TimestreamScheduledQueryS3Configuration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryS3Configuration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-s3configuration.html'

    hidden [object] $_bucketName
    hidden [object] $_objectKeyPrefix
    hidden [object] $_encryptionOption

    [string] $BucketName
    [string] $ObjectKeyPrefix
    [string] $EncryptionOption

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryTargetConfiguration'"

class TimestreamScheduledQueryTargetConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryTargetConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-targetconfiguration.html'

    hidden [object] $_timestreamConfiguration

    [TimestreamScheduledQueryTimestreamConfiguration] $TimestreamConfiguration

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryScheduleConfiguration'"

class TimestreamScheduledQueryScheduleConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryScheduleConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-scheduleconfiguration.html'

    hidden [object] $_scheduleExpression

    [string] $ScheduleExpression

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryErrorReportConfiguration'"

class TimestreamScheduledQueryErrorReportConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryErrorReportConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-errorreportconfiguration.html'

    hidden [object] $_s3Configuration

    [TimestreamScheduledQueryS3Configuration] $S3Configuration

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryMultiMeasureMappings'"

class TimestreamScheduledQueryMultiMeasureMappings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryMultiMeasureMappings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasuremappings.html'

    hidden [object] $_targetMultiMeasureName
    hidden [object] $_multiMeasureAttributeMappings

    [string] $TargetMultiMeasureName
    [TimestreamScheduledQueryMultiMeasureAttributeMapping[]] $MultiMeasureAttributeMappings

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryDimensionMapping'"

class TimestreamScheduledQueryDimensionMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryDimensionMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-dimensionmapping.html'

    hidden [object] $_name
    hidden [object] $_dimensionValueType

    [string] $Name
    [string] $DimensionValueType

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryMultiMeasureAttributeMapping'"

class TimestreamScheduledQueryMultiMeasureAttributeMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryMultiMeasureAttributeMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html'

    hidden [object] $_sourceColumn
    hidden [object] $_measureValueType
    hidden [object] $_targetMultiMeasureAttributeName

    [string] $SourceColumn
    [string] $MeasureValueType
    [string] $TargetMultiMeasureAttributeName

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

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

Write-Verbose "Importing class 'TimestreamScheduledQueryMixedMeasureMapping'"

class TimestreamScheduledQueryMixedMeasureMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTimestreamScheduledQueryMixedMeasureMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-mixedmeasuremapping.html'

    hidden [object] $_measureName
    hidden [object] $_sourceColumn
    hidden [object] $_targetMeasureName
    hidden [object] $_measureValueType
    hidden [object] $_multiMeasureAttributeMappings

    [string] $MeasureName
    [string] $SourceColumn
    [string] $TargetMeasureName
    [string] $MeasureValueType
    [TimestreamScheduledQueryMultiMeasureAttributeMapping[]] $MultiMeasureAttributeMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MeasureName -Value {
            $this._measureName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._measureName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceColumn -Value {
            $this._sourceColumn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sourceColumn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetMeasureName -Value {
            $this._targetMeasureName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetMeasureName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MeasureValueType -Value {
            $this._measureValueType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._measureValueType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MultiMeasureAttributeMappings -Value {
            $this._multiMeasureAttributeMappings
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryMultiMeasureAttributeMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._multiMeasureAttributeMappings = $value
        }
    }

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

Write-Verbose "Importing class 'TimestreamScheduledQuery'"

class TimestreamScheduledQuery : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTimestreamScheduledQuery'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-scheduledquery.html'

    hidden [string[]] $_attributes = @('Arn','SQName','SQQueryString','SQScheduleConfiguration','SQNotificationConfiguration','SQScheduledQueryExecutionRoleArn','SQTargetConfiguration','SQErrorReportConfiguration','SQKmsKeyId')
    hidden [object] $_condition

    [string] $Type = 'AWS::Timestream::ScheduledQuery'
    [string] $ScheduledQueryName
    [string] $QueryString
    [TimestreamScheduledQueryScheduleConfiguration] $ScheduleConfiguration
    [TimestreamScheduledQueryNotificationConfiguration] $NotificationConfiguration
    [string] $ClientToken
    [string] $ScheduledQueryExecutionRoleArn
    [TimestreamScheduledQueryTargetConfiguration] $TargetConfiguration
    [TimestreamScheduledQueryErrorReportConfiguration] $ErrorReportConfiguration
    [string] $KmsKeyId
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduledQueryName -Value {
            $this.Properties['ScheduledQueryName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ScheduledQueryName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueryString -Value {
            $this.Properties['QueryString']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['QueryString'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduleConfiguration -Value {
            $this.Properties['ScheduleConfiguration']
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryScheduleConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ScheduleConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationConfiguration -Value {
            $this.Properties['NotificationConfiguration']
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryNotificationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NotificationConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClientToken -Value {
            $this.Properties['ClientToken']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ClientToken'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScheduledQueryExecutionRoleArn -Value {
            $this.Properties['ScheduledQueryExecutionRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ScheduledQueryExecutionRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetConfiguration -Value {
            $this.Properties['TargetConfiguration']
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryTargetConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TargetConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ErrorReportConfiguration -Value {
            $this.Properties['ErrorReportConfiguration']
        } -SecondValue {
            param([ValidateType(([TimestreamScheduledQueryErrorReportConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ErrorReportConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this.Properties['KmsKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'TimestreamDatabase'"

class TimestreamDatabase : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTimestreamDatabase'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-database.html'

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

    [string] $Type = 'AWS::Timestream::Database'
    [string] $DatabaseName
    [string] $KmsKeyId
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'TimestreamTable'"

class TimestreamTable : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTimestreamTable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-table.html'

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

    [string] $Type = 'AWS::Timestream::Table'
    [string] $DatabaseName
    [string] $TableName
    [VSJson] $RetentionProperties
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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