VaporShell.CodeDeploy.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 'CodeDeployDeploymentConfigTimeBasedCanary'"

class CodeDeployDeploymentConfigTimeBasedCanary : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentConfigTimeBasedCanary'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html'

    hidden [object] $_canaryInterval
    hidden [object] $_canaryPercentage

    [int] $CanaryInterval
    [int] $CanaryPercentage

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupTargetGroupInfo'"

class CodeDeployDeploymentGroupTargetGroupInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupTargetGroupInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html'

    hidden [object] $_name

    [string] $Name

    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
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupOnPremisesTagSetListObject'"

class CodeDeployDeploymentGroupOnPremisesTagSetListObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupOnPremisesTagSetListObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html'

    hidden [object] $_onPremisesTagGroup

    [CodeDeployDeploymentGroupTagFilter[]] $OnPremisesTagGroup

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupDeploymentStyle'"

class CodeDeployDeploymentGroupDeploymentStyle : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupDeploymentStyle'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html'

    hidden [object] $_deploymentOption
    hidden [object] $_deploymentType

    [string] $DeploymentOption
    [string] $DeploymentType

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupEC2TagFilter'"

class CodeDeployDeploymentGroupEC2TagFilter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupEC2TagFilter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html'

    hidden [object] $_key
    hidden [object] $_type
    hidden [object] $_value

    [string] $Key
    [string] $Type
    [string] $Value

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupOnPremisesTagSet'"

class CodeDeployDeploymentGroupOnPremisesTagSet : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupOnPremisesTagSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html'

    hidden [object] $_onPremisesTagSetList

    [CodeDeployDeploymentGroupOnPremisesTagSetListObject[]] $OnPremisesTagSetList

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupLoadBalancerInfo'"

class CodeDeployDeploymentGroupLoadBalancerInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupLoadBalancerInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html'

    hidden [object] $_elbInfoList
    hidden [object] $_targetGroupInfoList
    hidden [object] $_targetGroupPairInfoList

    [CodeDeployDeploymentGroupELBInfo[]] $ElbInfoList
    [CodeDeployDeploymentGroupTargetGroupInfo[]] $TargetGroupInfoList
    [CodeDeployDeploymentGroupTargetGroupPairInfo[]] $TargetGroupPairInfoList

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ElbInfoList -Value {
            $this._elbInfoList
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupELBInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._elbInfoList = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetGroupInfoList -Value {
            $this._targetGroupInfoList
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTargetGroupInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._targetGroupInfoList = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetGroupPairInfoList -Value {
            $this._targetGroupPairInfoList
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTargetGroupPairInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._targetGroupPairInfoList = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupRevisionLocation'"

class CodeDeployDeploymentGroupRevisionLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupRevisionLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html'

    hidden [object] $_gitHubLocation
    hidden [object] $_revisionType
    hidden [object] $_s3Location

    [CodeDeployDeploymentGroupGitHubLocation] $GitHubLocation
    [string] $RevisionType
    [CodeDeployDeploymentGroupS3Location] $S3Location

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name GitHubLocation -Value {
            $this._gitHubLocation
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupGitHubLocation], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._gitHubLocation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RevisionType -Value {
            $this._revisionType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._revisionType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Location -Value {
            $this._s3Location
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupS3Location], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Location = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupTriggerConfig'"

class CodeDeployDeploymentGroupTriggerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupTriggerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html'

    hidden [object] $_triggerEvents
    hidden [object] $_triggerName
    hidden [object] $_triggerTargetArn

    [string[]] $TriggerEvents
    [string] $TriggerName
    [string] $TriggerTargetArn

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupEC2TagSet'"

class CodeDeployDeploymentGroupEC2TagSet : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupEC2TagSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html'

    hidden [object] $_ec2TagSetList

    [CodeDeployDeploymentGroupEC2TagSetListObject[]] $Ec2TagSetList

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupAlarmConfiguration'"

class CodeDeployDeploymentGroupAlarmConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupAlarmConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html'

    hidden [object] $_alarms
    hidden [object] $_enabled
    hidden [object] $_ignorePollAlarmFailure

    [CodeDeployDeploymentGroupAlarm[]] $Alarms
    [bool] $Enabled
    [bool] $IgnorePollAlarmFailure

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Alarms -Value {
            $this._alarms
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupAlarm], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._alarms = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IgnorePollAlarmFailure -Value {
            $this._ignorePollAlarmFailure
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ignorePollAlarmFailure = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration'"

class CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupBlueGreenDeploymentConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html'

    hidden [object] $_deploymentReadyOption
    hidden [object] $_greenFleetProvisioningOption
    hidden [object] $_terminateBlueInstancesOnDeploymentSuccess

    [CodeDeployDeploymentGroupDeploymentReadyOption] $DeploymentReadyOption
    [CodeDeployDeploymentGroupGreenFleetProvisioningOption] $GreenFleetProvisioningOption
    [CodeDeployDeploymentGroupBlueInstanceTerminationOption] $TerminateBlueInstancesOnDeploymentSuccess

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentReadyOption -Value {
            $this._deploymentReadyOption
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupDeploymentReadyOption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deploymentReadyOption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GreenFleetProvisioningOption -Value {
            $this._greenFleetProvisioningOption
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupGreenFleetProvisioningOption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._greenFleetProvisioningOption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TerminateBlueInstancesOnDeploymentSuccess -Value {
            $this._terminateBlueInstancesOnDeploymentSuccess
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupBlueInstanceTerminationOption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._terminateBlueInstancesOnDeploymentSuccess = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupDeploymentReadyOption'"

class CodeDeployDeploymentGroupDeploymentReadyOption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupDeploymentReadyOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html'

    hidden [object] $_actionOnTimeout
    hidden [object] $_waitTimeInMinutes

    [string] $ActionOnTimeout
    [int] $WaitTimeInMinutes

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentConfigMinimumHealthyHosts'"

class CodeDeployDeploymentConfigMinimumHealthyHosts : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentConfigMinimumHealthyHosts'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html'

    hidden [object] $_type
    hidden [object] $_value

    [string] $Type
    [int] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = 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 ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupAutoRollbackConfiguration'"

class CodeDeployDeploymentGroupAutoRollbackConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupAutoRollbackConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html'

    hidden [object] $_enabled
    hidden [object] $_events

    [bool] $Enabled
    [string[]] $Events

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Events -Value {
            $this._events
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._events = @($value)
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupS3Location'"

class CodeDeployDeploymentGroupS3Location : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupS3Location'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html'

    hidden [object] $_bucket
    hidden [object] $_bundleType
    hidden [object] $_eTag
    hidden [object] $_key
    hidden [object] $_version

    [string] $Bucket
    [string] $BundleType
    [string] $ETag
    [string] $Key
    [string] $Version

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Bucket -Value {
            $this._bucket
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bucket = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BundleType -Value {
            $this._bundleType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bundleType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ETag -Value {
            $this._eTag
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eTag = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Version -Value {
            $this._version
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._version = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupBlueInstanceTerminationOption'"

class CodeDeployDeploymentGroupBlueInstanceTerminationOption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupBlueInstanceTerminationOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html'

    hidden [object] $_action
    hidden [object] $_terminationWaitTimeInMinutes

    [string] $Action
    [int] $TerminationWaitTimeInMinutes

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentConfigTrafficRoutingConfig'"

class CodeDeployDeploymentConfigTrafficRoutingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentConfigTrafficRoutingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html'

    hidden [object] $_timeBasedCanary
    hidden [object] $_timeBasedLinear
    hidden [object] $_type

    [CodeDeployDeploymentConfigTimeBasedCanary] $TimeBasedCanary
    [CodeDeployDeploymentConfigTimeBasedLinear] $TimeBasedLinear
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeBasedCanary -Value {
            $this._timeBasedCanary
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentConfigTimeBasedCanary], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeBasedCanary = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeBasedLinear -Value {
            $this._timeBasedLinear
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentConfigTimeBasedLinear], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeBasedLinear = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupTagFilter'"

class CodeDeployDeploymentGroupTagFilter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupTagFilter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html'

    hidden [object] $_key
    hidden [object] $_type
    hidden [object] $_value

    [string] $Key
    [string] $Type
    [string] $Value

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupGitHubLocation'"

class CodeDeployDeploymentGroupGitHubLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupGitHubLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html'

    hidden [object] $_commitId
    hidden [object] $_repository

    [string] $CommitId
    [string] $Repository

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupTrafficRoute'"

class CodeDeployDeploymentGroupTrafficRoute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupTrafficRoute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-trafficroute.html'

    hidden [object] $_listenerArns

    [string[]] $ListenerArns

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupELBInfo'"

class CodeDeployDeploymentGroupELBInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupELBInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html'

    hidden [object] $_name

    [string] $Name

    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
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupAlarm'"

class CodeDeployDeploymentGroupAlarm : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupAlarm'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html'

    hidden [object] $_name

    [string] $Name

    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
            }
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentConfigTimeBasedLinear'"

class CodeDeployDeploymentConfigTimeBasedLinear : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentConfigTimeBasedLinear'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html'

    hidden [object] $_linearInterval
    hidden [object] $_linearPercentage

    [int] $LinearInterval
    [int] $LinearPercentage

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupGreenFleetProvisioningOption'"

class CodeDeployDeploymentGroupGreenFleetProvisioningOption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupGreenFleetProvisioningOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html'

    hidden [object] $_action

    [string] $Action

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupDeployment'"

class CodeDeployDeploymentGroupDeployment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupDeployment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html'

    hidden [object] $_description
    hidden [object] $_ignoreApplicationStopFailures
    hidden [object] $_revision

    [string] $Description
    [bool] $IgnoreApplicationStopFailures
    [CodeDeployDeploymentGroupRevisionLocation] $Revision

    hidden [void] _addAccessors() {
        $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 IgnoreApplicationStopFailures -Value {
            $this._ignoreApplicationStopFailures
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ignoreApplicationStopFailures = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Revision -Value {
            $this._revision
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupRevisionLocation], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._revision = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupECSService'"

class CodeDeployDeploymentGroupECSService : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupECSService'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html'

    hidden [object] $_clusterName
    hidden [object] $_serviceName

    [string] $ClusterName
    [string] $ServiceName

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupTargetGroupPairInfo'"

class CodeDeployDeploymentGroupTargetGroupPairInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupTargetGroupPairInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgrouppairinfo.html'

    hidden [object] $_prodTrafficRoute
    hidden [object] $_targetGroups
    hidden [object] $_testTrafficRoute

    [CodeDeployDeploymentGroupTrafficRoute] $ProdTrafficRoute
    [CodeDeployDeploymentGroupTargetGroupInfo[]] $TargetGroups
    [CodeDeployDeploymentGroupTrafficRoute] $TestTrafficRoute

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProdTrafficRoute -Value {
            $this._prodTrafficRoute
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTrafficRoute], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._prodTrafficRoute = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetGroups -Value {
            $this._targetGroups
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTargetGroupInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._targetGroups = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TestTrafficRoute -Value {
            $this._testTrafficRoute
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTrafficRoute], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._testTrafficRoute = $value
        }
    }

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroupEC2TagSetListObject'"

class CodeDeployDeploymentGroupEC2TagSetListObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCodeDeployDeploymentGroupEC2TagSetListObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html'

    hidden [object] $_ec2TagGroup

    [CodeDeployDeploymentGroupEC2TagFilter[]] $Ec2TagGroup

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentConfig'"

class CodeDeployDeploymentConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCodeDeployDeploymentConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CodeDeploy::DeploymentConfig'
    [string] $ComputePlatform
    [string] $DeploymentConfigName
    [CodeDeployDeploymentConfigMinimumHealthyHosts] $MinimumHealthyHosts
    [CodeDeployDeploymentConfigTrafficRoutingConfig] $TrafficRoutingConfig
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CodeDeployApplication'"

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

    hidden [object] $_condition

    [string] $Type = 'AWS::CodeDeploy::Application'
    [string] $ApplicationName
    [string] $ComputePlatform
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CodeDeployDeploymentGroup'"

class CodeDeployDeploymentGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCodeDeployDeploymentGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CodeDeploy::DeploymentGroup'
    [CodeDeployDeploymentGroupAlarmConfiguration] $AlarmConfiguration
    [string] $ApplicationName
    [CodeDeployDeploymentGroupAutoRollbackConfiguration] $AutoRollbackConfiguration
    [string[]] $AutoScalingGroups
    [CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration] $BlueGreenDeploymentConfiguration
    [CodeDeployDeploymentGroupDeployment] $Deployment
    [string] $DeploymentConfigName
    [string] $DeploymentGroupName
    [CodeDeployDeploymentGroupDeploymentStyle] $DeploymentStyle
    [CodeDeployDeploymentGroupECSService[]] $ECSServices
    [CodeDeployDeploymentGroupEC2TagFilter[]] $Ec2TagFilters
    [CodeDeployDeploymentGroupEC2TagSet] $Ec2TagSet
    [CodeDeployDeploymentGroupLoadBalancerInfo] $LoadBalancerInfo
    [CodeDeployDeploymentGroupTagFilter[]] $OnPremisesInstanceTagFilters
    [CodeDeployDeploymentGroupOnPremisesTagSet] $OnPremisesTagSet
    [string] $OutdatedInstancesStrategy
    [string] $ServiceRoleArn
    [VSTag[]] $Tags
    [CodeDeployDeploymentGroupTriggerConfig[]] $TriggerConfigurations
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmConfiguration -Value {
            $this.Properties['AlarmConfiguration']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupAlarmConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplicationName -Value {
            $this.Properties['ApplicationName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApplicationName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoRollbackConfiguration -Value {
            $this.Properties['AutoRollbackConfiguration']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupAutoRollbackConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoRollbackConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoScalingGroups -Value {
            $this.Properties['AutoScalingGroups']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AutoScalingGroups'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlueGreenDeploymentConfiguration -Value {
            $this.Properties['BlueGreenDeploymentConfiguration']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupBlueGreenDeploymentConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BlueGreenDeploymentConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Deployment -Value {
            $this.Properties['Deployment']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupDeployment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Deployment'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentConfigName -Value {
            $this.Properties['DeploymentConfigName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentConfigName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentGroupName -Value {
            $this.Properties['DeploymentGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentStyle -Value {
            $this.Properties['DeploymentStyle']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupDeploymentStyle], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentStyle'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ECSServices -Value {
            $this.Properties['ECSServices']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupECSService], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ECSServices'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ec2TagFilters -Value {
            $this.Properties['Ec2TagFilters']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupEC2TagFilter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Ec2TagFilters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ec2TagSet -Value {
            $this.Properties['Ec2TagSet']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupEC2TagSet], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Ec2TagSet'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerInfo -Value {
            $this.Properties['LoadBalancerInfo']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupLoadBalancerInfo], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoadBalancerInfo'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnPremisesInstanceTagFilters -Value {
            $this.Properties['OnPremisesInstanceTagFilters']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTagFilter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['OnPremisesInstanceTagFilters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnPremisesTagSet -Value {
            $this.Properties['OnPremisesTagSet']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupOnPremisesTagSet], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OnPremisesTagSet'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OutdatedInstancesStrategy -Value {
            $this.Properties['OutdatedInstancesStrategy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OutdatedInstancesStrategy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceRoleArn -Value {
            $this.Properties['ServiceRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServiceRoleArn'] = 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 TriggerConfigurations -Value {
            $this.Properties['TriggerConfigurations']
        } -SecondValue {
            param([ValidateType(([CodeDeployDeploymentGroupTriggerConfig], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['TriggerConfigurations'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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