VaporShell.Route53Resolver.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 'Route53ResolverFirewallRuleGroupFirewallRule'"

class Route53ResolverFirewallRuleGroupFirewallRule : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53ResolverFirewallRuleGroupFirewallRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-firewallrulegroup-firewallrule.html'

    hidden [object] $_firewallDomainListId
    hidden [object] $_priority
    hidden [object] $_action
    hidden [object] $_blockResponse
    hidden [object] $_blockOverrideDomain
    hidden [object] $_blockOverrideDnsType
    hidden [object] $_blockOverrideTtl

    [string] $FirewallDomainListId
    [int] $Priority
    [string] $Action
    [string] $BlockResponse
    [string] $BlockOverrideDomain
    [string] $BlockOverrideDnsType
    [int] $BlockOverrideTtl

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FirewallDomainListId -Value {
            $this._firewallDomainListId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firewallDomainListId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Priority -Value {
            $this._priority
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._priority = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $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 BlockResponse -Value {
            $this._blockResponse
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._blockResponse = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlockOverrideDomain -Value {
            $this._blockOverrideDomain
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._blockOverrideDomain = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlockOverrideDnsType -Value {
            $this._blockOverrideDnsType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._blockOverrideDnsType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlockOverrideTtl -Value {
            $this._blockOverrideTtl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._blockOverrideTtl = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'Route53ResolverResolverEndpointIpAddressRequest'"

class Route53ResolverResolverEndpointIpAddressRequest : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53ResolverResolverEndpointIpAddressRequest'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverendpoint-ipaddressrequest.html'

    hidden [object] $_ip
    hidden [object] $_subnetId

    [string] $Ip
    [string] $SubnetId

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

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

Write-Verbose "Importing class 'Route53ResolverResolverRuleTargetAddress'"

class Route53ResolverResolverRuleTargetAddress : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSRoute53ResolverResolverRuleTargetAddress'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html'

    hidden [object] $_ip
    hidden [object] $_port

    [string] $Ip
    [string] $Port

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

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

Write-Verbose "Importing class 'Route53ResolverResolverQueryLoggingConfig'"

class Route53ResolverResolverQueryLoggingConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverQueryLoggingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfig.html'

    hidden [string[]] $_attributes = @('Id','OwnerId','Status','ShareStatus','AssociationCount','Arn','CreatorRequestId','CreationTime')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::ResolverQueryLoggingConfig'
    [string] $Name
    [string] $DestinationArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverFirewallRuleGroupAssociation'"

class Route53ResolverFirewallRuleGroupAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverFirewallRuleGroupAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroupassociation.html'

    hidden [string[]] $_attributes = @('Id','Arn','ManagedOwnerName','Status','StatusMessage','CreatorRequestId','CreationTime','ModificationTime')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::FirewallRuleGroupAssociation'
    [string] $FirewallRuleGroupId
    [string] $VpcId
    [string] $Name
    [int] $Priority
    [string] $MutationProtection
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverQueryLoggingConfigAssociation'"

class Route53ResolverResolverQueryLoggingConfigAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverQueryLoggingConfigAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverqueryloggingconfigassociation.html'

    hidden [string[]] $_attributes = @('Id','Status','Error','ErrorMessage','CreationTime')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation'
    [string] $ResolverQueryLogConfigId
    [string] $ResourceId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverConfig'"

class Route53ResolverResolverConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html'

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

    [string] $Type = 'AWS::Route53Resolver::ResolverConfig'
    [string] $ResourceId
    [string] $AutodefinedReverseFlag
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverDNSSECConfig'"

class Route53ResolverResolverDNSSECConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverDNSSECConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverdnssecconfig.html'

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

    [string] $Type = 'AWS::Route53Resolver::ResolverDNSSECConfig'
    [string] $ResourceId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverFirewallDomainList'"

class Route53ResolverFirewallDomainList : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverFirewallDomainList'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewalldomainlist.html'

    hidden [string[]] $_attributes = @('Id','Arn','DomainCount','Status','StatusMessage','ManagedOwnerName','CreatorRequestId','CreationTime','ModificationTime')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::FirewallDomainList'
    [string] $Name
    [string[]] $Domains
    [string] $DomainFileUrl
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverRule'"

class Route53ResolverResolverRule : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html'

    hidden [string[]] $_attributes = @('ResolverEndpointId','DomainName','Name','TargetIps','Arn','ResolverRuleId')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::ResolverRule'
    [string] $ResolverEndpointId
    [string] $DomainName
    [string] $Name
    [string] $RuleType
    [VSTag[]] $Tags
    [Route53ResolverResolverRuleTargetAddress[]] $TargetIps
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverFirewallRuleGroup'"

class Route53ResolverFirewallRuleGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverFirewallRuleGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-firewallrulegroup.html'

    hidden [string[]] $_attributes = @('Id','Arn','RuleCount','Status','StatusMessage','OwnerId','ShareStatus','CreatorRequestId','CreationTime','ModificationTime')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::FirewallRuleGroup'
    [string] $Name
    [Route53ResolverFirewallRuleGroupFirewallRule[]] $FirewallRules
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverRuleAssociation'"

class Route53ResolverResolverRuleAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverRuleAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html'

    hidden [string[]] $_attributes = @('VPCId','ResolverRuleId','ResolverRuleAssociationId','Name')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::ResolverRuleAssociation'
    [string] $VPCId
    [string] $ResolverRuleId
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'Route53ResolverResolverEndpoint'"

class Route53ResolverResolverEndpoint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSRoute53ResolverResolverEndpoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html'

    hidden [string[]] $_attributes = @('ResolverEndpointId','IpAddressCount','Arn','Direction','HostVPCId','Name')
    hidden [object] $_condition

    [string] $Type = 'AWS::Route53Resolver::ResolverEndpoint'
    [Route53ResolverResolverEndpointIpAddressRequest[]] $IpAddresses
    [string] $Direction
    [string[]] $SecurityGroupIds
    [VSTag[]] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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