VaporShell.GameLift.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 'GameLiftGameServerGroupTargetTrackingConfiguration'"

class GameLiftGameServerGroupTargetTrackingConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameServerGroupTargetTrackingConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html'

    hidden [object] $_targetValue

    [double] $TargetValue

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

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

Write-Verbose "Importing class 'GameLiftBuildS3Location'"

class GameLiftBuildS3Location : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftBuildS3Location'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html'

    hidden [object] $_bucket
    hidden [object] $_key
    hidden [object] $_objectVersion
    hidden [object] $_roleArn

    [string] $Bucket
    [string] $Key
    [string] $ObjectVersion
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'GameLiftAliasRoutingStrategy'"

class GameLiftAliasRoutingStrategy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftAliasRoutingStrategy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html'

    hidden [object] $_message
    hidden [object] $_fleetId
    hidden [object] $_type

    [string] $Message
    [string] $FleetId
    [string] $Type

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

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

Write-Verbose "Importing class 'GameLiftGameServerGroupLaunchTemplate'"

class GameLiftGameServerGroupLaunchTemplate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameServerGroupLaunchTemplate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html'

    hidden [object] $_launchTemplateId
    hidden [object] $_launchTemplateName
    hidden [object] $_version

    [string] $LaunchTemplateId
    [string] $LaunchTemplateName
    [string] $Version

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

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

Write-Verbose "Importing class 'GameLiftFleetCertificateConfiguration'"

class GameLiftFleetCertificateConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftFleetCertificateConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html'

    hidden [object] $_certificateType

    [string] $CertificateType

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

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

Write-Verbose "Importing class 'GameLiftScriptS3Location'"

class GameLiftScriptS3Location : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftScriptS3Location'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html'

    hidden [object] $_objectVersion
    hidden [object] $_bucket
    hidden [object] $_key
    hidden [object] $_roleArn

    [string] $ObjectVersion
    [string] $Bucket
    [string] $Key
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'GameLiftGameServerGroupAutoScalingPolicy'"

class GameLiftGameServerGroupAutoScalingPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameServerGroupAutoScalingPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html'

    hidden [object] $_estimatedInstanceWarmup
    hidden [object] $_targetTrackingConfiguration

    [double] $EstimatedInstanceWarmup
    [GameLiftGameServerGroupTargetTrackingConfiguration] $TargetTrackingConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EstimatedInstanceWarmup -Value {
            $this._estimatedInstanceWarmup
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._estimatedInstanceWarmup = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetTrackingConfiguration -Value {
            $this._targetTrackingConfiguration
        } -SecondValue {
            param([ValidateType(([GameLiftGameServerGroupTargetTrackingConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetTrackingConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'GameLiftGameSessionQueuePlayerLatencyPolicy'"

class GameLiftGameSessionQueuePlayerLatencyPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameSessionQueuePlayerLatencyPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html'

    hidden [object] $_policyDurationSeconds
    hidden [object] $_maximumIndividualPlayerLatencyMilliseconds

    [int] $PolicyDurationSeconds
    [int] $MaximumIndividualPlayerLatencyMilliseconds

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

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

Write-Verbose "Importing class 'GameLiftGameSessionQueueDestination'"

class GameLiftGameSessionQueueDestination : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameSessionQueueDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html'

    hidden [object] $_destinationArn

    [string] $DestinationArn

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

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

Write-Verbose "Importing class 'GameLiftFleetIpPermission'"

class GameLiftFleetIpPermission : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftFleetIpPermission'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html'

    hidden [object] $_fromPort
    hidden [object] $_ipRange
    hidden [object] $_protocol
    hidden [object] $_toPort

    [int] $FromPort
    [string] $IpRange
    [string] $Protocol
    [int] $ToPort

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FromPort -Value {
            $this._fromPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fromPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpRange -Value {
            $this._ipRange
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ipRange = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Protocol -Value {
            $this._protocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._protocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ToPort -Value {
            $this._toPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._toPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GameLiftFleetServerProcess'"

class GameLiftFleetServerProcess : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftFleetServerProcess'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html'

    hidden [object] $_concurrentExecutions
    hidden [object] $_launchPath
    hidden [object] $_parameters

    [int] $ConcurrentExecutions
    [string] $LaunchPath
    [string] $Parameters

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConcurrentExecutions -Value {
            $this._concurrentExecutions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._concurrentExecutions = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchPath -Value {
            $this._launchPath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._launchPath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Parameters -Value {
            $this._parameters
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parameters = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GameLiftFleetResourceCreationLimitPolicy'"

class GameLiftFleetResourceCreationLimitPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftFleetResourceCreationLimitPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html'

    hidden [object] $_newGameSessionsPerCreator
    hidden [object] $_policyPeriodInMinutes

    [int] $NewGameSessionsPerCreator
    [int] $PolicyPeriodInMinutes

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

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

Write-Verbose "Importing class 'GameLiftGameServerGroupInstanceDefinition'"

class GameLiftGameServerGroupInstanceDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftGameServerGroupInstanceDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html'

    hidden [object] $_instanceType
    hidden [object] $_weightedCapacity

    [string] $InstanceType
    [string] $WeightedCapacity

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

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

Write-Verbose "Importing class 'GameLiftFleetRuntimeConfiguration'"

class GameLiftFleetRuntimeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftFleetRuntimeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html'

    hidden [object] $_gameSessionActivationTimeoutSeconds
    hidden [object] $_maxConcurrentGameSessionActivations
    hidden [object] $_serverProcesses

    [int] $GameSessionActivationTimeoutSeconds
    [int] $MaxConcurrentGameSessionActivations
    [GameLiftFleetServerProcess[]] $ServerProcesses

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

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

Write-Verbose "Importing class 'GameLiftMatchmakingConfigurationGameProperty'"

class GameLiftMatchmakingConfigurationGameProperty : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGameLiftMatchmakingConfigurationGameProperty'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html'

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

    [string] $Value
    [string] $Key

    hidden [void] _addAccessors() {
        $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
            }
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'GameLiftFleet'"

class GameLiftFleet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftFleet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::GameLift::Fleet'
    [string] $BuildId
    [GameLiftFleetCertificateConfiguration] $CertificateConfiguration
    [string] $Description
    [int] $DesiredEC2Instances
    [GameLiftFleetIpPermission[]] $EC2InboundPermissions
    [string] $EC2InstanceType
    [string] $FleetType
    [string] $InstanceRoleARN
    [string[]] $LogPaths
    [int] $MaxSize
    [string[]] $MetricGroups
    [int] $MinSize
    [string] $Name
    [string] $NewGameSessionProtectionPolicy
    [string] $PeerVpcAwsAccountId
    [string] $PeerVpcId
    [GameLiftFleetResourceCreationLimitPolicy] $ResourceCreationLimitPolicy
    [GameLiftFleetRuntimeConfiguration] $RuntimeConfiguration
    [string] $ScriptId
    [string] $ServerLaunchParameters
    [string] $ServerLaunchPath
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name BuildId -Value {
            $this.Properties['BuildId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BuildId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateConfiguration -Value {
            $this.Properties['CertificateConfiguration']
        } -SecondValue {
            param([ValidateType(([GameLiftFleetCertificateConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DesiredEC2Instances -Value {
            $this.Properties['DesiredEC2Instances']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DesiredEC2Instances'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EC2InboundPermissions -Value {
            $this.Properties['EC2InboundPermissions']
        } -SecondValue {
            param([ValidateType(([GameLiftFleetIpPermission], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['EC2InboundPermissions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EC2InstanceType -Value {
            $this.Properties['EC2InstanceType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EC2InstanceType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FleetType -Value {
            $this.Properties['FleetType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FleetType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceRoleARN -Value {
            $this.Properties['InstanceRoleARN']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InstanceRoleARN'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogPaths -Value {
            $this.Properties['LogPaths']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LogPaths'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxSize -Value {
            $this.Properties['MaxSize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaxSize'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricGroups -Value {
            $this.Properties['MetricGroups']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['MetricGroups'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinSize -Value {
            $this.Properties['MinSize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MinSize'] = if ($cast = $value -as [int]) {
                $cast
            }
            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 NewGameSessionProtectionPolicy -Value {
            $this.Properties['NewGameSessionProtectionPolicy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NewGameSessionProtectionPolicy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PeerVpcAwsAccountId -Value {
            $this.Properties['PeerVpcAwsAccountId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PeerVpcAwsAccountId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PeerVpcId -Value {
            $this.Properties['PeerVpcId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PeerVpcId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceCreationLimitPolicy -Value {
            $this.Properties['ResourceCreationLimitPolicy']
        } -SecondValue {
            param([ValidateType(([GameLiftFleetResourceCreationLimitPolicy], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceCreationLimitPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RuntimeConfiguration -Value {
            $this.Properties['RuntimeConfiguration']
        } -SecondValue {
            param([ValidateType(([GameLiftFleetRuntimeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RuntimeConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScriptId -Value {
            $this.Properties['ScriptId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ScriptId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerLaunchParameters -Value {
            $this.Properties['ServerLaunchParameters']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerLaunchParameters'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerLaunchPath -Value {
            $this.Properties['ServerLaunchPath']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerLaunchPath'] = 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
        }
    }

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

Write-Verbose "Importing class 'GameLiftMatchmakingConfiguration'"

class GameLiftMatchmakingConfiguration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftMatchmakingConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html'

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

    [string] $Type = 'AWS::GameLift::MatchmakingConfiguration'
    [GameLiftMatchmakingConfigurationGameProperty[]] $GameProperties
    [string] $GameSessionData
    [string] $Description
    [int] $AcceptanceTimeoutSeconds
    [string] $NotificationTarget
    [string] $CustomEventData
    [string] $Name
    [int] $AdditionalPlayerCount
    [string] $BackfillMode
    [int] $RequestTimeoutSeconds
    [bool] $AcceptanceRequired
    [string] $FlexMatchMode
    [string] $RuleSetName
    [string[]] $GameSessionQueueArns
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name GameProperties -Value {
            $this.Properties['GameProperties']
        } -SecondValue {
            param([ValidateType(([GameLiftMatchmakingConfigurationGameProperty], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['GameProperties'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GameSessionData -Value {
            $this.Properties['GameSessionData']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GameSessionData'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptanceTimeoutSeconds -Value {
            $this.Properties['AcceptanceTimeoutSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptanceTimeoutSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationTarget -Value {
            $this.Properties['NotificationTarget']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NotificationTarget'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomEventData -Value {
            $this.Properties['CustomEventData']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CustomEventData'] = 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 AdditionalPlayerCount -Value {
            $this.Properties['AdditionalPlayerCount']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdditionalPlayerCount'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackfillMode -Value {
            $this.Properties['BackfillMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackfillMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestTimeoutSeconds -Value {
            $this.Properties['RequestTimeoutSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RequestTimeoutSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptanceRequired -Value {
            $this.Properties['AcceptanceRequired']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptanceRequired'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FlexMatchMode -Value {
            $this.Properties['FlexMatchMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FlexMatchMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RuleSetName -Value {
            $this.Properties['RuleSetName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RuleSetName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GameSessionQueueArns -Value {
            $this.Properties['GameSessionQueueArns']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['GameSessionQueueArns'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'GameLiftAlias'"

class GameLiftAlias : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftAlias'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html'

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

    [string] $Type = 'AWS::GameLift::Alias'
    [string] $Description
    [string] $Name
    [GameLiftAliasRoutingStrategy] $RoutingStrategy
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GameLiftBuild'"

class GameLiftBuild : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftBuild'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::GameLift::Build'
    [string] $Name
    [string] $OperatingSystem
    [GameLiftBuildS3Location] $StorageLocation
    [string] $Version
    [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 OperatingSystem -Value {
            $this.Properties['OperatingSystem']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OperatingSystem'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StorageLocation -Value {
            $this.Properties['StorageLocation']
        } -SecondValue {
            param([ValidateType(([GameLiftBuildS3Location], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StorageLocation'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Version -Value {
            $this.Properties['Version']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Version'] = 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
        }
    }

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

Write-Verbose "Importing class 'GameLiftMatchmakingRuleSet'"

class GameLiftMatchmakingRuleSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftMatchmakingRuleSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html'

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

    [string] $Type = 'AWS::GameLift::MatchmakingRuleSet'
    [string] $RuleSetBody
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GameLiftGameSessionQueue'"

class GameLiftGameSessionQueue : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftGameSessionQueue'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html'

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

    [string] $Type = 'AWS::GameLift::GameSessionQueue'
    [int] $TimeoutInSeconds
    [GameLiftGameSessionQueuePlayerLatencyPolicy[]] $PlayerLatencyPolicies
    [GameLiftGameSessionQueueDestination[]] $Destinations
    [string] $NotificationTarget
    [string] $CustomEventData
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GameLiftScript'"

class GameLiftScript : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftScript'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html'

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

    [string] $Type = 'AWS::GameLift::Script'
    [string] $Version
    [GameLiftScriptS3Location] $StorageLocation
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GameLiftGameServerGroup'"

class GameLiftGameServerGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGameLiftGameServerGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html'

    hidden [string[]] $_attributes = @('AutoScalingGroupArn','GameServerGroupArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::GameLift::GameServerGroup'
    [GameLiftGameServerGroupAutoScalingPolicy] $AutoScalingPolicy
    [string] $BalancingStrategy
    [string] $DeleteOption
    [string] $GameServerGroupName
    [string] $GameServerProtectionPolicy
    [GameLiftGameServerGroupInstanceDefinition[]] $InstanceDefinitions
    [GameLiftGameServerGroupLaunchTemplate] $LaunchTemplate
    [double] $MaxSize
    [double] $MinSize
    [string] $RoleArn
    [VSTag[]] $Tags
    [string[]] $VpcSubnets
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoScalingPolicy -Value {
            $this.Properties['AutoScalingPolicy']
        } -SecondValue {
            param([ValidateType(([GameLiftGameServerGroupAutoScalingPolicy], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoScalingPolicy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BalancingStrategy -Value {
            $this.Properties['BalancingStrategy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BalancingStrategy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeleteOption -Value {
            $this.Properties['DeleteOption']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeleteOption'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GameServerGroupName -Value {
            $this.Properties['GameServerGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GameServerGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GameServerProtectionPolicy -Value {
            $this.Properties['GameServerProtectionPolicy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GameServerProtectionPolicy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceDefinitions -Value {
            $this.Properties['InstanceDefinitions']
        } -SecondValue {
            param([ValidateType(([GameLiftGameServerGroupInstanceDefinition], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['InstanceDefinitions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchTemplate -Value {
            $this.Properties['LaunchTemplate']
        } -SecondValue {
            param([ValidateType(([GameLiftGameServerGroupLaunchTemplate], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LaunchTemplate'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxSize -Value {
            $this.Properties['MaxSize']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaxSize'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinSize -Value {
            $this.Properties['MinSize']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MinSize'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = 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 VpcSubnets -Value {
            $this.Properties['VpcSubnets']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['VpcSubnets'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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