VaporShell.WAF.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 'WAFWebACLWafAction'"

class WAFWebACLWafAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFWebACLWafAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html'

    hidden [object] $_type

    [string] $Type

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

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

Write-Verbose "Importing class 'WAFIPSetIPSetDescriptor'"

class WAFIPSetIPSetDescriptor : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFIPSetIPSetDescriptor'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html'

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

    [string] $Type
    [string] $Value

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

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

Write-Verbose "Importing class 'WAFByteMatchSetFieldToMatch'"

class WAFByteMatchSetFieldToMatch : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFByteMatchSetFieldToMatch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html'

    hidden [object] $_data
    hidden [object] $_type

    [string] $Data
    [string] $Type

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

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

Write-Verbose "Importing class 'WAFSqlInjectionMatchSetFieldToMatch'"

class WAFSqlInjectionMatchSetFieldToMatch : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFSqlInjectionMatchSetFieldToMatch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html'

    hidden [object] $_data
    hidden [object] $_type

    [string] $Data
    [string] $Type

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

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

Write-Verbose "Importing class 'WAFByteMatchSetByteMatchTuple'"

class WAFByteMatchSetByteMatchTuple : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFByteMatchSetByteMatchTuple'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html'

    hidden [object] $_fieldToMatch
    hidden [object] $_positionalConstraint
    hidden [object] $_targetString
    hidden [object] $_targetStringBase64
    hidden [object] $_textTransformation

    [WAFByteMatchSetFieldToMatch] $FieldToMatch
    [string] $PositionalConstraint
    [string] $TargetString
    [string] $TargetStringBase64
    [string] $TextTransformation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldToMatch -Value {
            $this._fieldToMatch
        } -SecondValue {
            param([ValidateType(([WAFByteMatchSetFieldToMatch], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fieldToMatch = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PositionalConstraint -Value {
            $this._positionalConstraint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._positionalConstraint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetString -Value {
            $this._targetString
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetString = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetStringBase64 -Value {
            $this._targetStringBase64
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetStringBase64 = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TextTransformation -Value {
            $this._textTransformation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._textTransformation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'WAFSqlInjectionMatchSetSqlInjectionMatchTuple'"

class WAFSqlInjectionMatchSetSqlInjectionMatchTuple : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFSqlInjectionMatchSetSqlInjectionMatchTuple'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html'

    hidden [object] $_fieldToMatch
    hidden [object] $_textTransformation

    [WAFSqlInjectionMatchSetFieldToMatch] $FieldToMatch
    [string] $TextTransformation

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

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

Write-Verbose "Importing class 'WAFWebACLActivatedRule'"

class WAFWebACLActivatedRule : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFWebACLActivatedRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html'

    hidden [object] $_action
    hidden [object] $_priority
    hidden [object] $_ruleId

    [WAFWebACLWafAction] $Action
    [int] $Priority
    [string] $RuleId

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

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

Write-Verbose "Importing class 'WAFXssMatchSetXssMatchTuple'"

class WAFXssMatchSetXssMatchTuple : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFXssMatchSetXssMatchTuple'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html'

    hidden [object] $_fieldToMatch
    hidden [object] $_textTransformation

    [WAFXssMatchSetFieldToMatch] $FieldToMatch
    [string] $TextTransformation

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

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

Write-Verbose "Importing class 'WAFRulePredicate'"

class WAFRulePredicate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFRulePredicate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html'

    hidden [object] $_dataId
    hidden [object] $_negated
    hidden [object] $_type

    [string] $DataId
    [bool] $Negated
    [string] $Type

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

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

Write-Verbose "Importing class 'WAFXssMatchSetFieldToMatch'"

class WAFXssMatchSetFieldToMatch : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFXssMatchSetFieldToMatch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html'

    hidden [object] $_data
    hidden [object] $_type

    [string] $Data
    [string] $Type

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

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

Write-Verbose "Importing class 'WAFSizeConstraintSetFieldToMatch'"

class WAFSizeConstraintSetFieldToMatch : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFSizeConstraintSetFieldToMatch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html'

    hidden [object] $_data
    hidden [object] $_type

    [string] $Data
    [string] $Type

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

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

Write-Verbose "Importing class 'WAFSizeConstraintSetSizeConstraint'"

class WAFSizeConstraintSetSizeConstraint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSWAFSizeConstraintSetSizeConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html'

    hidden [object] $_comparisonOperator
    hidden [object] $_fieldToMatch
    hidden [object] $_size
    hidden [object] $_textTransformation

    [string] $ComparisonOperator
    [WAFSizeConstraintSetFieldToMatch] $FieldToMatch
    [int] $Size
    [string] $TextTransformation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ComparisonOperator -Value {
            $this._comparisonOperator
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._comparisonOperator = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldToMatch -Value {
            $this._fieldToMatch
        } -SecondValue {
            param([ValidateType(([WAFSizeConstraintSetFieldToMatch], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fieldToMatch = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Size -Value {
            $this._size
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._size = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TextTransformation -Value {
            $this._textTransformation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._textTransformation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'WAFIPSet'"

class WAFIPSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFIPSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-ipset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::IPSet'
    [WAFIPSetIPSetDescriptor[]] $IPSetDescriptors
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'WAFSizeConstraintSet'"

class WAFSizeConstraintSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFSizeConstraintSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sizeconstraintset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::SizeConstraintSet'
    [string] $Name
    [WAFSizeConstraintSetSizeConstraint[]] $SizeConstraints
    [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 SizeConstraints -Value {
            $this.Properties['SizeConstraints']
        } -SecondValue {
            param([ValidateType(([WAFSizeConstraintSetSizeConstraint], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SizeConstraints'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'WAFByteMatchSet'"

class WAFByteMatchSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFByteMatchSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-bytematchset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::ByteMatchSet'
    [WAFByteMatchSetByteMatchTuple[]] $ByteMatchTuples
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'WAFXssMatchSet'"

class WAFXssMatchSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFXssMatchSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-xssmatchset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::XssMatchSet'
    [string] $Name
    [WAFXssMatchSetXssMatchTuple[]] $XssMatchTuples
    [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 XssMatchTuples -Value {
            $this.Properties['XssMatchTuples']
        } -SecondValue {
            param([ValidateType(([WAFXssMatchSetXssMatchTuple], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['XssMatchTuples'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'WAFRule'"

class WAFRule : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-rule.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::Rule'
    [string] $MetricName
    [string] $Name
    [WAFRulePredicate[]] $Predicates
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'WAFSqlInjectionMatchSet'"

class WAFSqlInjectionMatchSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFSqlInjectionMatchSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-sqlinjectionmatchset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::SqlInjectionMatchSet'
    [string] $Name
    [WAFSqlInjectionMatchSetSqlInjectionMatchTuple[]] $SqlInjectionMatchTuples
    [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 SqlInjectionMatchTuples -Value {
            $this.Properties['SqlInjectionMatchTuples']
        } -SecondValue {
            param([ValidateType(([WAFSqlInjectionMatchSetSqlInjectionMatchTuple], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SqlInjectionMatchTuples'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'WAFWebACL'"

class WAFWebACL : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSWAFWebACL'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::WAF::WebACL'
    [WAFWebACLWafAction] $DefaultAction
    [string] $MetricName
    [string] $Name
    [WAFWebACLActivatedRule[]] $Rules
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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