VaporShell.Evidently.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 'EvidentlyFeatureVariationObject'"

class EvidentlyFeatureVariationObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyFeatureVariationObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html'

    hidden [object] $_variationName
    hidden [object] $_booleanValue
    hidden [object] $_stringValue
    hidden [object] $_longValue
    hidden [object] $_doubleValue

    [string] $VariationName
    [bool] $BooleanValue
    [string] $StringValue
    [double] $LongValue
    [double] $DoubleValue

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name VariationName -Value {
            $this._variationName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._variationName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BooleanValue -Value {
            $this._booleanValue
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._booleanValue = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StringValue -Value {
            $this._stringValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stringValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LongValue -Value {
            $this._longValue
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._longValue = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DoubleValue -Value {
            $this._doubleValue
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._doubleValue = $value
        }
    }

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

Write-Verbose "Importing class 'EvidentlyExperimentOnlineAbConfigObject'"

class EvidentlyExperimentOnlineAbConfigObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyExperimentOnlineAbConfigObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html'

    hidden [object] $_controlTreatmentName
    hidden [object] $_treatmentWeights

    [string] $ControlTreatmentName
    [EvidentlyExperimentTreatmentToWeight[]] $TreatmentWeights

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

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

Write-Verbose "Importing class 'EvidentlyLaunchLaunchGroupObject'"

class EvidentlyLaunchLaunchGroupObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyLaunchLaunchGroupObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html'

    hidden [object] $_groupName
    hidden [object] $_description
    hidden [object] $_feature
    hidden [object] $_variation

    [string] $GroupName
    [string] $Description
    [string] $Feature
    [string] $Variation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name GroupName -Value {
            $this._groupName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._groupName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this._description
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._description = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Feature -Value {
            $this._feature
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._feature = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variation -Value {
            $this._variation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._variation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'EvidentlyLaunchStepConfig'"

class EvidentlyLaunchStepConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyLaunchStepConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html'

    hidden [object] $_startTime
    hidden [object] $_groupWeights

    [string] $StartTime
    [EvidentlyLaunchGroupToWeight[]] $GroupWeights

    hidden [void] _addAccessors() {
        $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
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GroupWeights -Value {
            $this._groupWeights
        } -SecondValue {
            param([ValidateType(([EvidentlyLaunchGroupToWeight], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._groupWeights = $value
        }
    }

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

Write-Verbose "Importing class 'EvidentlyExperimentTreatmentObject'"

class EvidentlyExperimentTreatmentObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyExperimentTreatmentObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html'

    hidden [object] $_treatmentName
    hidden [object] $_description
    hidden [object] $_feature
    hidden [object] $_variation

    [string] $TreatmentName
    [string] $Description
    [string] $Feature
    [string] $Variation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TreatmentName -Value {
            $this._treatmentName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._treatmentName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this._description
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._description = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Feature -Value {
            $this._feature
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._feature = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variation -Value {
            $this._variation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._variation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'EvidentlyExperimentMetricGoalObject'"

class EvidentlyExperimentMetricGoalObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyExperimentMetricGoalObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html'

    hidden [object] $_metricName
    hidden [object] $_entityIdKey
    hidden [object] $_valueKey
    hidden [object] $_eventPattern
    hidden [object] $_unitLabel
    hidden [object] $_desiredChange

    [string] $MetricName
    [string] $EntityIdKey
    [string] $ValueKey
    [string] $EventPattern
    [string] $UnitLabel
    [string] $DesiredChange

    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 EntityIdKey -Value {
            $this._entityIdKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._entityIdKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ValueKey -Value {
            $this._valueKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._valueKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventPattern -Value {
            $this._eventPattern
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eventPattern = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UnitLabel -Value {
            $this._unitLabel
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unitLabel = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DesiredChange -Value {
            $this._desiredChange
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._desiredChange = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'EvidentlyExperimentTreatmentToWeight'"

class EvidentlyExperimentTreatmentToWeight : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyExperimentTreatmentToWeight'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html'

    hidden [object] $_treatment
    hidden [object] $_splitWeight

    [string] $Treatment
    [int] $SplitWeight

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

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

Write-Verbose "Importing class 'EvidentlyFeatureEntityOverride'"

class EvidentlyFeatureEntityOverride : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyFeatureEntityOverride'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html'

    hidden [object] $_entityId
    hidden [object] $_variation

    [string] $EntityId
    [string] $Variation

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

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

Write-Verbose "Importing class 'EvidentlyLaunchMetricDefinitionObject'"

class EvidentlyLaunchMetricDefinitionObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyLaunchMetricDefinitionObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html'

    hidden [object] $_metricName
    hidden [object] $_entityIdKey
    hidden [object] $_valueKey
    hidden [object] $_eventPattern
    hidden [object] $_unitLabel

    [string] $MetricName
    [string] $EntityIdKey
    [string] $ValueKey
    [string] $EventPattern
    [string] $UnitLabel

    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 EntityIdKey -Value {
            $this._entityIdKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._entityIdKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ValueKey -Value {
            $this._valueKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._valueKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventPattern -Value {
            $this._eventPattern
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eventPattern = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UnitLabel -Value {
            $this._unitLabel
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unitLabel = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'EvidentlyLaunchGroupToWeight'"

class EvidentlyLaunchGroupToWeight : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyLaunchGroupToWeight'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html'

    hidden [object] $_groupName
    hidden [object] $_splitWeight

    [string] $GroupName
    [int] $SplitWeight

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

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

Write-Verbose "Importing class 'EvidentlyProjectS3Destination'"

class EvidentlyProjectS3Destination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyProjectS3Destination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html'

    hidden [object] $_bucketName
    hidden [object] $_prefix

    [string] $BucketName
    [string] $Prefix

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

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

Write-Verbose "Importing class 'EvidentlyProjectDataDeliveryObject'"

class EvidentlyProjectDataDeliveryObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSEvidentlyProjectDataDeliveryObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html'

    hidden [object] $_s3
    hidden [object] $_logGroup

    [EvidentlyProjectS3Destination] $S3
    [string] $LogGroup

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

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

Write-Verbose "Importing class 'EvidentlyLaunch'"

class EvidentlyLaunch : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEvidentlyLaunch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html'

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

    [string] $Type = 'AWS::Evidently::Launch'
    [string] $Name
    [string] $Project
    [string] $Description
    [string] $RandomizationSalt
    [EvidentlyLaunchStepConfig[]] $ScheduledSplitsConfig
    [EvidentlyLaunchLaunchGroupObject[]] $Groups
    [EvidentlyLaunchMetricDefinitionObject[]] $MetricMonitors
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'EvidentlyExperiment'"

class EvidentlyExperiment : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEvidentlyExperiment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html'

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

    [string] $Type = 'AWS::Evidently::Experiment'
    [string] $Name
    [string] $Project
    [string] $Description
    [string] $RandomizationSalt
    [EvidentlyExperimentTreatmentObject[]] $Treatments
    [EvidentlyExperimentMetricGoalObject[]] $MetricGoals
    [int] $SamplingRate
    [EvidentlyExperimentOnlineAbConfigObject] $OnlineAbConfig
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $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 Project -Value {
            $this.Properties['Project']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Project'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RandomizationSalt -Value {
            $this.Properties['RandomizationSalt']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RandomizationSalt'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Treatments -Value {
            $this.Properties['Treatments']
        } -SecondValue {
            param([ValidateType(([EvidentlyExperimentTreatmentObject], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Treatments'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricGoals -Value {
            $this.Properties['MetricGoals']
        } -SecondValue {
            param([ValidateType(([EvidentlyExperimentMetricGoalObject], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['MetricGoals'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SamplingRate -Value {
            $this.Properties['SamplingRate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SamplingRate'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnlineAbConfig -Value {
            $this.Properties['OnlineAbConfig']
        } -SecondValue {
            param([ValidateType(([EvidentlyExperimentOnlineAbConfigObject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OnlineAbConfig'] = $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
        }
    }

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

Write-Verbose "Importing class 'EvidentlyProject'"

class EvidentlyProject : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEvidentlyProject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html'

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

    [string] $Type = 'AWS::Evidently::Project'
    [string] $Name
    [string] $Description
    [EvidentlyProjectDataDeliveryObject] $DataDelivery
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'EvidentlyFeature'"

class EvidentlyFeature : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSEvidentlyFeature'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html'

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

    [string] $Type = 'AWS::Evidently::Feature'
    [string] $Project
    [string] $Name
    [string] $Description
    [string] $EvaluationStrategy
    [EvidentlyFeatureVariationObject[]] $Variations
    [string] $DefaultVariation
    [EvidentlyFeatureEntityOverride[]] $EntityOverrides
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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