VaporShell.ElasticLoadBalancing.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 'ElasticLoadBalancingLoadBalancerAccessLoggingPolicy'"

class ElasticLoadBalancingLoadBalancerAccessLoggingPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerAccessLoggingPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html'

    hidden [object] $_emitInterval
    hidden [object] $_enabled
    hidden [object] $_s3BucketName
    hidden [object] $_s3BucketPrefix

    [int] $EmitInterval
    [bool] $Enabled
    [string] $S3BucketName
    [string] $S3BucketPrefix

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EmitInterval -Value {
            $this._emitInterval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._emitInterval = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $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 S3BucketName -Value {
            $this._s3BucketName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3BucketPrefix -Value {
            $this._s3BucketPrefix
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketPrefix = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerHealthCheck'"

class ElasticLoadBalancingLoadBalancerHealthCheck : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerHealthCheck'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html'

    hidden [object] $_healthyThreshold
    hidden [object] $_interval
    hidden [object] $_target
    hidden [object] $_timeout
    hidden [object] $_unhealthyThreshold

    [string] $HealthyThreshold
    [string] $Interval
    [string] $Target
    [string] $Timeout
    [string] $UnhealthyThreshold

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthyThreshold -Value {
            $this._healthyThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthyThreshold = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Interval -Value {
            $this._interval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._interval = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Target -Value {
            $this._target
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._target = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Timeout -Value {
            $this._timeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeout = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UnhealthyThreshold -Value {
            $this._unhealthyThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unhealthyThreshold = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerConnectionSettings'"

class ElasticLoadBalancingLoadBalancerConnectionSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerConnectionSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html'

    hidden [object] $_idleTimeout

    [int] $IdleTimeout

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

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy'"

class ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerConnectionDrainingPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html'

    hidden [object] $_enabled
    hidden [object] $_timeout

    [bool] $Enabled
    [int] $Timeout

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

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy'"

class ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html'

    hidden [object] $_cookieName
    hidden [object] $_policyName

    [string] $CookieName
    [string] $PolicyName

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

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy'"

class ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html'

    hidden [object] $_cookieExpirationPeriod
    hidden [object] $_policyName

    [string] $CookieExpirationPeriod
    [string] $PolicyName

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

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerListeners'"

class ElasticLoadBalancingLoadBalancerListeners : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerListeners'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html'

    hidden [object] $_instancePort
    hidden [object] $_instanceProtocol
    hidden [object] $_loadBalancerPort
    hidden [object] $_policyNames
    hidden [object] $_protocol
    hidden [object] $_sSLCertificateId

    [string] $InstancePort
    [string] $InstanceProtocol
    [string] $LoadBalancerPort
    [string[]] $PolicyNames
    [string] $Protocol
    [string] $SSLCertificateId

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstancePort -Value {
            $this._instancePort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._instancePort = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceProtocol -Value {
            $this._instanceProtocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._instanceProtocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerPort -Value {
            $this._loadBalancerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._loadBalancerPort = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyNames -Value {
            $this._policyNames
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._policyNames = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Protocol -Value {
            $this._protocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._protocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SSLCertificateId -Value {
            $this._sSLCertificateId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sSLCertificateId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancerPolicies'"

class ElasticLoadBalancingLoadBalancerPolicies : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSElasticLoadBalancingLoadBalancerPolicies'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html'

    hidden [object] $_attributes
    hidden [object] $_instancePorts
    hidden [object] $_loadBalancerPorts
    hidden [object] $_policyName
    hidden [object] $_policyType

    [VSJson[]] $Attributes
    [string[]] $InstancePorts
    [string[]] $LoadBalancerPorts
    [string] $PolicyName
    [string] $PolicyType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Attributes -Value {
            $this._attributes
        } -SecondValue {
            param([ValidateType(([VSJson], [string], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._attributes = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstancePorts -Value {
            $this._instancePorts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._instancePorts = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerPorts -Value {
            $this._loadBalancerPorts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._loadBalancerPorts = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyName -Value {
            $this._policyName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._policyName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyType -Value {
            $this._policyType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._policyType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ElasticLoadBalancingLoadBalancer'"

class ElasticLoadBalancingLoadBalancer : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSElasticLoadBalancingLoadBalancer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html'

    hidden [string[]] $_attributes = @('CanonicalHostedZoneName','CanonicalHostedZoneNameID','DNSName','SourceSecurityGroup.GroupName','SourceSecurityGroup.OwnerAlias')
    hidden [object] $_condition

    [string] $Type = 'AWS::ElasticLoadBalancing::LoadBalancer'
    [ElasticLoadBalancingLoadBalancerAccessLoggingPolicy] $AccessLoggingPolicy
    [ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy[]] $AppCookieStickinessPolicy
    [string[]] $AvailabilityZones
    [ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy] $ConnectionDrainingPolicy
    [ElasticLoadBalancingLoadBalancerConnectionSettings] $ConnectionSettings
    [bool] $CrossZone
    [ElasticLoadBalancingLoadBalancerHealthCheck] $HealthCheck
    [string[]] $Instances
    [ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy[]] $LBCookieStickinessPolicy
    [ElasticLoadBalancingLoadBalancerListeners[]] $Listeners
    [string] $LoadBalancerName
    [ElasticLoadBalancingLoadBalancerPolicies[]] $Policies
    [string] $Scheme
    [string[]] $SecurityGroups
    [string[]] $Subnets
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessLoggingPolicy -Value {
            $this.Properties['AccessLoggingPolicy']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerAccessLoggingPolicy], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AccessLoggingPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppCookieStickinessPolicy -Value {
            $this.Properties['AppCookieStickinessPolicy']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerAppCookieStickinessPolicy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AppCookieStickinessPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZones -Value {
            $this.Properties['AvailabilityZones']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AvailabilityZones'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectionDrainingPolicy -Value {
            $this.Properties['ConnectionDrainingPolicy']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerConnectionDrainingPolicy], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ConnectionDrainingPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectionSettings -Value {
            $this.Properties['ConnectionSettings']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerConnectionSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ConnectionSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrossZone -Value {
            $this.Properties['CrossZone']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CrossZone'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheck -Value {
            $this.Properties['HealthCheck']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerHealthCheck], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HealthCheck'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Instances -Value {
            $this.Properties['Instances']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Instances'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LBCookieStickinessPolicy -Value {
            $this.Properties['LBCookieStickinessPolicy']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerLBCookieStickinessPolicy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LBCookieStickinessPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Listeners -Value {
            $this.Properties['Listeners']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerListeners], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Listeners'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerName -Value {
            $this.Properties['LoadBalancerName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoadBalancerName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Policies -Value {
            $this.Properties['Policies']
        } -SecondValue {
            param([ValidateType(([ElasticLoadBalancingLoadBalancerPolicies], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Policies'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Scheme -Value {
            $this.Properties['Scheme']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Scheme'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroups -Value {
            $this.Properties['SecurityGroups']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SecurityGroups'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subnets -Value {
            $this.Properties['Subnets']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Subnets'] = @($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
        }
    }

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