VaporShell.CloudWatch.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 'CloudWatchAlarmMetricStat'"

class CloudWatchAlarmMetricStat : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAlarmMetricStat'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html'

    hidden [object] $_metric
    hidden [object] $_period
    hidden [object] $_stat
    hidden [object] $_unit

    [CloudWatchAlarmMetric] $Metric
    [int] $Period
    [string] $Stat
    [string] $Unit

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Metric -Value {
            $this._metric
        } -SecondValue {
            param([ValidateType(([CloudWatchAlarmMetric], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metric = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Period -Value {
            $this._period
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._period = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Stat -Value {
            $this._stat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Unit -Value {
            $this._unit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorMetricDataQuery'"

class CloudWatchAnomalyDetectorMetricDataQuery : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorMetricDataQuery'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html'

    hidden [object] $_accountId
    hidden [object] $_returnData
    hidden [object] $_expression
    hidden [object] $_metricStat
    hidden [object] $_label
    hidden [object] $_period
    hidden [object] $_id

    [string] $AccountId
    [bool] $ReturnData
    [string] $Expression
    [CloudWatchAnomalyDetectorMetricStat] $MetricStat
    [string] $Label
    [int] $Period
    [string] $Id

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccountId -Value {
            $this._accountId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accountId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReturnData -Value {
            $this._returnData
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._returnData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Expression -Value {
            $this._expression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._expression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricStat -Value {
            $this._metricStat
        } -SecondValue {
            param([ValidateType(([CloudWatchAnomalyDetectorMetricStat], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricStat = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Label -Value {
            $this._label
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._label = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Period -Value {
            $this._period
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._period = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this._id
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._id = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAlarmMetricDataQuery'"

class CloudWatchAlarmMetricDataQuery : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAlarmMetricDataQuery'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html'

    hidden [object] $_accountId
    hidden [object] $_expression
    hidden [object] $_id
    hidden [object] $_label
    hidden [object] $_metricStat
    hidden [object] $_period
    hidden [object] $_returnData

    [string] $AccountId
    [string] $Expression
    [string] $Id
    [string] $Label
    [CloudWatchAlarmMetricStat] $MetricStat
    [int] $Period
    [bool] $ReturnData

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccountId -Value {
            $this._accountId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accountId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Expression -Value {
            $this._expression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._expression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this._id
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._id = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Label -Value {
            $this._label
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._label = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricStat -Value {
            $this._metricStat
        } -SecondValue {
            param([ValidateType(([CloudWatchAlarmMetricStat], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricStat = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Period -Value {
            $this._period
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._period = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReturnData -Value {
            $this._returnData
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._returnData = $value
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorMetricDataQueries'"

class CloudWatchAnomalyDetectorMetricDataQueries : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorMetricDataQueries'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'CloudWatchMetricStreamMetricStreamFilter'"

class CloudWatchMetricStreamMetricStreamFilter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchMetricStreamMetricStreamFilter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html'

    hidden [object] $_namespace

    [string] $Namespace

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

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorRange'"

class CloudWatchAnomalyDetectorRange : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorRange'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html'

    hidden [object] $_endTime
    hidden [object] $_startTime

    [string] $EndTime
    [string] $StartTime

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

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

Write-Verbose "Importing class 'CloudWatchInsightRuleTags'"

class CloudWatchInsightRuleTags : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchInsightRuleTags'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-insightrule-tags.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorDimension'"

class CloudWatchAnomalyDetectorDimension : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorDimension'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html'

    hidden [object] $_value
    hidden [object] $_name

    [string] $Value
    [string] $Name

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

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorMetric'"

class CloudWatchAnomalyDetectorMetric : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorMetric'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html'

    hidden [object] $_metricName
    hidden [object] $_dimensions
    hidden [object] $_namespace

    [string] $MetricName
    [CloudWatchAnomalyDetectorDimension[]] $Dimensions
    [string] $Namespace

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

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorMetricStat'"

class CloudWatchAnomalyDetectorMetricStat : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorMetricStat'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html'

    hidden [object] $_stat
    hidden [object] $_period
    hidden [object] $_metric
    hidden [object] $_unit

    [string] $Stat
    [int] $Period
    [CloudWatchAnomalyDetectorMetric] $Metric
    [string] $Unit

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Stat -Value {
            $this._stat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Period -Value {
            $this._period
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._period = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Metric -Value {
            $this._metric
        } -SecondValue {
            param([ValidateType(([CloudWatchAnomalyDetectorMetric], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metric = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Unit -Value {
            $this._unit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAlarmDimension'"

class CloudWatchAlarmDimension : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAlarmDimension'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html'

    hidden [object] $_name
    hidden [object] $_value

    [string] $Name
    [string] $Value

    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 Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAlarmMetric'"

class CloudWatchAlarmMetric : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAlarmMetric'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html'

    hidden [object] $_dimensions
    hidden [object] $_metricName
    hidden [object] $_namespace

    [CloudWatchAlarmDimension[]] $Dimensions
    [string] $MetricName
    [string] $Namespace

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

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetectorConfiguration'"

class CloudWatchAnomalyDetectorConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudWatchAnomalyDetectorConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html'

    hidden [object] $_metricTimeZone
    hidden [object] $_excludedTimeRanges

    [string] $MetricTimeZone
    [CloudWatchAnomalyDetectorRange[]] $ExcludedTimeRanges

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

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

Write-Verbose "Importing class 'CloudWatchAnomalyDetector'"

class CloudWatchAnomalyDetector : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchAnomalyDetector'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudWatch::AnomalyDetector'
    [string] $MetricName
    [string] $Stat
    [CloudWatchAnomalyDetectorConfiguration] $Configuration
    [CloudWatchAnomalyDetectorDimension[]] $Dimensions
    [string] $Namespace
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricName -Value {
            $this.Properties['MetricName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MetricName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Stat -Value {
            $this.Properties['Stat']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Stat'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Configuration -Value {
            $this.Properties['Configuration']
        } -SecondValue {
            param([ValidateType(([CloudWatchAnomalyDetectorConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Configuration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Dimensions -Value {
            $this.Properties['Dimensions']
        } -SecondValue {
            param([ValidateType(([CloudWatchAnomalyDetectorDimension], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Dimensions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Namespace -Value {
            $this.Properties['Namespace']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Namespace'] = 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
        }
    }

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

Write-Verbose "Importing class 'CloudWatchCompositeAlarm'"

class CloudWatchCompositeAlarm : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchCompositeAlarm'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html'

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

    [string] $Type = 'AWS::CloudWatch::CompositeAlarm'
    [string] $AlarmName
    [string] $AlarmRule
    [string] $AlarmDescription
    [bool] $ActionsEnabled
    [string[]] $OKActions
    [string[]] $AlarmActions
    [string[]] $InsufficientDataActions
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmName -Value {
            $this.Properties['AlarmName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmRule -Value {
            $this.Properties['AlarmRule']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmRule'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmDescription -Value {
            $this.Properties['AlarmDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ActionsEnabled -Value {
            $this.Properties['ActionsEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ActionsEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OKActions -Value {
            $this.Properties['OKActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['OKActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmActions -Value {
            $this.Properties['AlarmActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AlarmActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InsufficientDataActions -Value {
            $this.Properties['InsufficientDataActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['InsufficientDataActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'CloudWatchInsightRule'"

class CloudWatchInsightRule : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchInsightRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html'

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

    [string] $Type = 'AWS::CloudWatch::InsightRule'
    [string] $RuleState
    [string] $RuleBody
    [string] $RuleName
    [CloudWatchInsightRuleTags] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudWatchDashboard'"

class CloudWatchDashboard : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchDashboard'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudWatch::Dashboard'
    [string] $DashboardName
    [string] $DashboardBody
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudWatchMetricStream'"

class CloudWatchMetricStream : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchMetricStream'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html'

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

    [string] $Type = 'AWS::CloudWatch::MetricStream'
    [CloudWatchMetricStreamMetricStreamFilter[]] $ExcludeFilters
    [string] $FirehoseArn
    [CloudWatchMetricStreamMetricStreamFilter[]] $IncludeFilters
    [string] $Name
    [string] $RoleArn
    [string] $OutputFormat
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeFilters -Value {
            $this.Properties['ExcludeFilters']
        } -SecondValue {
            param([ValidateType(([CloudWatchMetricStreamMetricStreamFilter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ExcludeFilters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FirehoseArn -Value {
            $this.Properties['FirehoseArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FirehoseArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeFilters -Value {
            $this.Properties['IncludeFilters']
        } -SecondValue {
            param([ValidateType(([CloudWatchMetricStreamMetricStreamFilter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['IncludeFilters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OutputFormat -Value {
            $this.Properties['OutputFormat']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OutputFormat'] = 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
        }
    }

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

Write-Verbose "Importing class 'CloudWatchAlarm'"

class CloudWatchAlarm : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudWatchAlarm'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html'

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

    [string] $Type = 'AWS::CloudWatch::Alarm'
    [bool] $ActionsEnabled
    [string[]] $AlarmActions
    [string] $AlarmDescription
    [string] $AlarmName
    [string] $ComparisonOperator
    [int] $DatapointsToAlarm
    [CloudWatchAlarmDimension[]] $Dimensions
    [string] $EvaluateLowSampleCountPercentile
    [int] $EvaluationPeriods
    [string] $ExtendedStatistic
    [string[]] $InsufficientDataActions
    [string] $MetricName
    [CloudWatchAlarmMetricDataQuery[]] $Metrics
    [string] $Namespace
    [string[]] $OKActions
    [int] $Period
    [string] $Statistic
    [double] $Threshold
    [string] $ThresholdMetricId
    [string] $TreatMissingData
    [string] $Unit
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ActionsEnabled -Value {
            $this.Properties['ActionsEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ActionsEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmActions -Value {
            $this.Properties['AlarmActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AlarmActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmDescription -Value {
            $this.Properties['AlarmDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmName -Value {
            $this.Properties['AlarmName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ComparisonOperator -Value {
            $this.Properties['ComparisonOperator']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ComparisonOperator'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatapointsToAlarm -Value {
            $this.Properties['DatapointsToAlarm']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DatapointsToAlarm'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Dimensions -Value {
            $this.Properties['Dimensions']
        } -SecondValue {
            param([ValidateType(([CloudWatchAlarmDimension], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Dimensions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EvaluateLowSampleCountPercentile -Value {
            $this.Properties['EvaluateLowSampleCountPercentile']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EvaluateLowSampleCountPercentile'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EvaluationPeriods -Value {
            $this.Properties['EvaluationPeriods']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EvaluationPeriods'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtendedStatistic -Value {
            $this.Properties['ExtendedStatistic']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExtendedStatistic'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InsufficientDataActions -Value {
            $this.Properties['InsufficientDataActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['InsufficientDataActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricName -Value {
            $this.Properties['MetricName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MetricName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Metrics -Value {
            $this.Properties['Metrics']
        } -SecondValue {
            param([ValidateType(([CloudWatchAlarmMetricDataQuery], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Metrics'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Namespace -Value {
            $this.Properties['Namespace']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Namespace'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OKActions -Value {
            $this.Properties['OKActions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['OKActions'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Period -Value {
            $this.Properties['Period']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Period'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Statistic -Value {
            $this.Properties['Statistic']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Statistic'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Threshold -Value {
            $this.Properties['Threshold']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Threshold'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThresholdMetricId -Value {
            $this.Properties['ThresholdMetricId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ThresholdMetricId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TreatMissingData -Value {
            $this.Properties['TreatMissingData']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TreatMissingData'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Unit -Value {
            $this.Properties['Unit']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Unit'] = 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
        }
    }

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