VaporShell.Route53.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 'Route53HostedZoneHostedZoneTag'"

class Route53HostedZoneHostedZoneTag : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HostedZoneHostedZoneTag'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html'

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

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

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

Write-Verbose "Importing class 'Route53HostedZoneHostedZoneConfig'"

class Route53HostedZoneHostedZoneConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HostedZoneHostedZoneConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html'

    hidden [object] $_comment

    [string] $Comment

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

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

Write-Verbose "Importing class 'Route53HostedZoneQueryLoggingConfig'"

class Route53HostedZoneQueryLoggingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HostedZoneQueryLoggingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html'

    hidden [object] $_cloudWatchLogsLogGroupArn

    [string] $CloudWatchLogsLogGroupArn

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

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

Write-Verbose "Importing class 'Route53RecordSetGroupGeoLocation'"

class Route53RecordSetGroupGeoLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53RecordSetGroupGeoLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html'

    hidden [object] $_continentCode
    hidden [object] $_countryCode
    hidden [object] $_subdivisionCode

    [string] $ContinentCode
    [string] $CountryCode
    [string] $SubdivisionCode

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

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

Write-Verbose "Importing class 'Route53HostedZoneVPC'"

class Route53HostedZoneVPC : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HostedZoneVPC'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html'

    hidden [object] $_vPCId
    hidden [object] $_vPCRegion

    [string] $VPCId
    [string] $VPCRegion

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

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

Write-Verbose "Importing class 'Route53RecordSetGroupRecordSet'"

class Route53RecordSetGroupRecordSet : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53RecordSetGroupRecordSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html'

    hidden [object] $_aliasTarget
    hidden [object] $_comment
    hidden [object] $_failover
    hidden [object] $_geoLocation
    hidden [object] $_healthCheckId
    hidden [object] $_hostedZoneId
    hidden [object] $_hostedZoneName
    hidden [object] $_multiValueAnswer
    hidden [object] $_name
    hidden [object] $_region
    hidden [object] $_resourceRecords
    hidden [object] $_setIdentifier
    hidden [object] $_tTL
    hidden [object] $_type
    hidden [object] $_weight

    [Route53RecordSetGroupAliasTarget] $AliasTarget
    [string] $Comment
    [string] $Failover
    [Route53RecordSetGroupGeoLocation] $GeoLocation
    [string] $HealthCheckId
    [string] $HostedZoneId
    [string] $HostedZoneName
    [bool] $MultiValueAnswer
    [string] $Name
    [string] $Region
    [string[]] $ResourceRecords
    [string] $SetIdentifier
    [string] $TTL
    [string] $Type
    [int] $Weight

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AliasTarget -Value {
            $this._aliasTarget
        } -SecondValue {
            param([ValidateType(([Route53RecordSetGroupAliasTarget], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._aliasTarget = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Comment -Value {
            $this._comment
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._comment = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Failover -Value {
            $this._failover
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._failover = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GeoLocation -Value {
            $this._geoLocation
        } -SecondValue {
            param([ValidateType(([Route53RecordSetGroupGeoLocation], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._geoLocation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckId -Value {
            $this._healthCheckId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthCheckId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneId -Value {
            $this._hostedZoneId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hostedZoneId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneName -Value {
            $this._hostedZoneName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hostedZoneName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MultiValueAnswer -Value {
            $this._multiValueAnswer
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._multiValueAnswer = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Region -Value {
            $this._region
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._region = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceRecords -Value {
            $this._resourceRecords
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._resourceRecords = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SetIdentifier -Value {
            $this._setIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._setIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TTL -Value {
            $this._tTL
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tTL = 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 Weight -Value {
            $this._weight
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._weight = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'Route53RecordSetGroupAliasTarget'"

class Route53RecordSetGroupAliasTarget : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53RecordSetGroupAliasTarget'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html'

    hidden [object] $_dNSName
    hidden [object] $_evaluateTargetHealth
    hidden [object] $_hostedZoneId

    [string] $DNSName
    [bool] $EvaluateTargetHealth
    [string] $HostedZoneId

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

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

Write-Verbose "Importing class 'Route53RecordSetGeoLocation'"

class Route53RecordSetGeoLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53RecordSetGeoLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html'

    hidden [object] $_continentCode
    hidden [object] $_countryCode
    hidden [object] $_subdivisionCode

    [string] $ContinentCode
    [string] $CountryCode
    [string] $SubdivisionCode

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

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

Write-Verbose "Importing class 'Route53RecordSetAliasTarget'"

class Route53RecordSetAliasTarget : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53RecordSetAliasTarget'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html'

    hidden [object] $_dNSName
    hidden [object] $_evaluateTargetHealth
    hidden [object] $_hostedZoneId

    [string] $DNSName
    [bool] $EvaluateTargetHealth
    [string] $HostedZoneId

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

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

Write-Verbose "Importing class 'Route53HealthCheckHealthCheckTag'"

class Route53HealthCheckHealthCheckTag : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HealthCheckHealthCheckTag'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html'

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

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

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

Write-Verbose "Importing class 'Route53HealthCheckHealthCheckConfig'"

class Route53HealthCheckHealthCheckConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HealthCheckHealthCheckConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html'

    hidden [object] $_alarmIdentifier
    hidden [object] $_childHealthChecks
    hidden [object] $_enableSNI
    hidden [object] $_failureThreshold
    hidden [object] $_fullyQualifiedDomainName
    hidden [object] $_healthThreshold
    hidden [object] $_iPAddress
    hidden [object] $_insufficientDataHealthStatus
    hidden [object] $_inverted
    hidden [object] $_measureLatency
    hidden [object] $_port
    hidden [object] $_regions
    hidden [object] $_requestInterval
    hidden [object] $_resourcePath
    hidden [object] $_searchString
    hidden [object] $_type

    [Route53HealthCheckAlarmIdentifier] $AlarmIdentifier
    [string[]] $ChildHealthChecks
    [bool] $EnableSNI
    [int] $FailureThreshold
    [string] $FullyQualifiedDomainName
    [int] $HealthThreshold
    [string] $IPAddress
    [string] $InsufficientDataHealthStatus
    [bool] $Inverted
    [bool] $MeasureLatency
    [int] $Port
    [string[]] $Regions
    [int] $RequestInterval
    [string] $ResourcePath
    [string] $SearchString
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmIdentifier -Value {
            $this._alarmIdentifier
        } -SecondValue {
            param([ValidateType(([Route53HealthCheckAlarmIdentifier], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._alarmIdentifier = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ChildHealthChecks -Value {
            $this._childHealthChecks
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._childHealthChecks = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableSNI -Value {
            $this._enableSNI
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableSNI = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FailureThreshold -Value {
            $this._failureThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._failureThreshold = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FullyQualifiedDomainName -Value {
            $this._fullyQualifiedDomainName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fullyQualifiedDomainName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthThreshold -Value {
            $this._healthThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthThreshold = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IPAddress -Value {
            $this._iPAddress
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iPAddress = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InsufficientDataHealthStatus -Value {
            $this._insufficientDataHealthStatus
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._insufficientDataHealthStatus = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Inverted -Value {
            $this._inverted
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._inverted = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MeasureLatency -Value {
            $this._measureLatency
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._measureLatency = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Regions -Value {
            $this._regions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._regions = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestInterval -Value {
            $this._requestInterval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._requestInterval = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourcePath -Value {
            $this._resourcePath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._resourcePath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SearchString -Value {
            $this._searchString
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._searchString = 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
            }
        }
    }

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

Write-Verbose "Importing class 'Route53HealthCheckAlarmIdentifier'"

class Route53HealthCheckAlarmIdentifier : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53HealthCheckAlarmIdentifier'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html'

    hidden [object] $_name
    hidden [object] $_region

    [string] $Name
    [string] $Region

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

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

Write-Verbose "Importing class 'Route53RecordSet'"

class Route53RecordSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53RecordSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Route53::RecordSet'
    [Route53RecordSetAliasTarget] $AliasTarget
    [string] $Comment
    [string] $Failover
    [Route53RecordSetGeoLocation] $GeoLocation
    [string] $HealthCheckId
    [string] $HostedZoneId
    [string] $HostedZoneName
    [bool] $MultiValueAnswer
    [string] $Name
    [string] $Region
    [string[]] $ResourceRecords
    [string] $SetIdentifier
    [string] $TTL
    [string] $RecordSetType
    [int] $Weight
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AliasTarget -Value {
            $this.Properties['AliasTarget']
        } -SecondValue {
            param([ValidateType(([Route53RecordSetAliasTarget], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AliasTarget'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Comment -Value {
            $this.Properties['Comment']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Comment'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Failover -Value {
            $this.Properties['Failover']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Failover'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GeoLocation -Value {
            $this.Properties['GeoLocation']
        } -SecondValue {
            param([ValidateType(([Route53RecordSetGeoLocation], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GeoLocation'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckId -Value {
            $this.Properties['HealthCheckId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HealthCheckId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneId -Value {
            $this.Properties['HostedZoneId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HostedZoneId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneName -Value {
            $this.Properties['HostedZoneName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HostedZoneName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MultiValueAnswer -Value {
            $this.Properties['MultiValueAnswer']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MultiValueAnswer'] = $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 Region -Value {
            $this.Properties['Region']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Region'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceRecords -Value {
            $this.Properties['ResourceRecords']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ResourceRecords'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SetIdentifier -Value {
            $this.Properties['SetIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SetIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TTL -Value {
            $this.Properties['TTL']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TTL'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RecordSetType -Value {
            $this.Properties['RecordSetType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RecordSetType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Weight -Value {
            $this.Properties['Weight']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Weight'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'Route53DNSSEC'"

class Route53DNSSEC : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53DNSSEC'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Route53::DNSSEC'
    [string] $HostedZoneId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53HostedZone'"

class Route53HostedZone : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53HostedZone'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html'

    hidden [string[]] $_attributes = @('Id','NameServers')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53::HostedZone'
    [Route53HostedZoneHostedZoneConfig] $HostedZoneConfig
    [Route53HostedZoneHostedZoneTag[]] $HostedZoneTags
    [string] $Name
    [Route53HostedZoneQueryLoggingConfig] $QueryLoggingConfig
    [Route53HostedZoneVPC[]] $VPCs
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneConfig -Value {
            $this.Properties['HostedZoneConfig']
        } -SecondValue {
            param([ValidateType(([Route53HostedZoneHostedZoneConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HostedZoneConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostedZoneTags -Value {
            $this.Properties['HostedZoneTags']
        } -SecondValue {
            param([ValidateType(([Route53HostedZoneHostedZoneTag], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['HostedZoneTags'] = $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 QueryLoggingConfig -Value {
            $this.Properties['QueryLoggingConfig']
        } -SecondValue {
            param([ValidateType(([Route53HostedZoneQueryLoggingConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['QueryLoggingConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VPCs -Value {
            $this.Properties['VPCs']
        } -SecondValue {
            param([ValidateType(([Route53HostedZoneVPC], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['VPCs'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'Route53RecordSetGroup'"

class Route53RecordSetGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53RecordSetGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Route53::RecordSetGroup'
    [string] $Comment
    [string] $HostedZoneId
    [string] $HostedZoneName
    [Route53RecordSetGroupRecordSet[]] $RecordSets
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53HealthCheck'"

class Route53HealthCheck : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53HealthCheck'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html'

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

    [string] $Type = 'AWS::Route53::HealthCheck'
    [VSJson] $HealthCheckConfig
    [Route53HealthCheckHealthCheckTag[]] $HealthCheckTags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckConfig -Value {
            $this.Properties['HealthCheckConfig']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['HealthCheckConfig'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['HealthCheckConfig']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckTags -Value {
            $this.Properties['HealthCheckTags']
        } -SecondValue {
            param([ValidateType(([Route53HealthCheckHealthCheckTag], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['HealthCheckTags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'Route53KeySigningKey'"

class Route53KeySigningKey : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53KeySigningKey'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Route53::KeySigningKey'
    [string] $HostedZoneId
    [string] $Status
    [string] $Name
    [string] $KeyManagementServiceArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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