# Copyright (c) 2012-2024, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, double, integer
[docs]class RoutingStrategy(AWSProperty):
"""
`RoutingStrategy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html>`__
"""
props: PropsDictType = {
"FleetId": (str, False),
"Message": (str, False),
"Type": (str, True),
}
[docs]class Alias(AWSObject):
"""
`Alias <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html>`__
"""
resource_type = "AWS::GameLift::Alias"
props: PropsDictType = {
"Description": (str, False),
"Name": (str, True),
"RoutingStrategy": (RoutingStrategy, True),
}
[docs]class StorageLocation(AWSProperty):
"""
`StorageLocation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html>`__
"""
props: PropsDictType = {
"Bucket": (str, True),
"Key": (str, True),
"ObjectVersion": (str, False),
"RoleArn": (str, True),
}
[docs]class Build(AWSObject):
"""
`Build <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html>`__
"""
resource_type = "AWS::GameLift::Build"
props: PropsDictType = {
"Name": (str, False),
"OperatingSystem": (str, False),
"ServerSdkVersion": (str, False),
"StorageLocation": (StorageLocation, False),
"Version": (str, False),
}
[docs]class ContainerDependency(AWSProperty):
"""
`ContainerDependency <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html>`__
"""
props: PropsDictType = {
"Condition": (str, True),
"ContainerName": (str, True),
}
[docs]class ContainerEnvironment(AWSProperty):
"""
`ContainerEnvironment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
"Value": (str, True),
}
[docs]class ContainerHealthCheck(AWSProperty):
"""
`ContainerHealthCheck <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html>`__
"""
props: PropsDictType = {
"Command": ([str], True),
"Interval": (integer, False),
"Retries": (integer, False),
"StartPeriod": (integer, False),
"Timeout": (integer, False),
}
[docs]class MemoryLimits(AWSProperty):
"""
`MemoryLimits <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html>`__
"""
props: PropsDictType = {
"HardLimit": (integer, False),
"SoftLimit": (integer, False),
}
[docs]class ContainerPortRange(AWSProperty):
"""
`ContainerPortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, True),
"Protocol": (str, True),
"ToPort": (integer, True),
}
[docs]class PortConfiguration(AWSProperty):
"""
`PortConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html>`__
"""
props: PropsDictType = {
"ContainerPortRanges": ([ContainerPortRange], True),
}
[docs]class ContainerDefinition(AWSProperty):
"""
`ContainerDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html>`__
"""
props: PropsDictType = {
"Command": ([str], False),
"ContainerName": (str, True),
"Cpu": (integer, False),
"DependsOn": ([ContainerDependency], False),
"EntryPoint": ([str], False),
"Environment": ([ContainerEnvironment], False),
"Essential": (boolean, False),
"HealthCheck": (ContainerHealthCheck, False),
"ImageUri": (str, True),
"MemoryLimits": (MemoryLimits, False),
"PortConfiguration": (PortConfiguration, False),
"ResolvedImageDigest": (str, False),
"WorkingDirectory": (str, False),
}
[docs]class ContainerGroupDefinition(AWSObject):
"""
`ContainerGroupDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html>`__
"""
resource_type = "AWS::GameLift::ContainerGroupDefinition"
props: PropsDictType = {
"ContainerDefinitions": ([ContainerDefinition], True),
"Name": (str, True),
"OperatingSystem": (str, True),
"SchedulingStrategy": (str, False),
"Tags": (Tags, False),
"TotalCpuLimit": (integer, True),
"TotalMemoryLimit": (integer, True),
}
[docs]class AnywhereConfiguration(AWSProperty):
"""
`AnywhereConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html>`__
"""
props: PropsDictType = {
"Cost": (str, True),
}
[docs]class CertificateConfiguration(AWSProperty):
"""
`CertificateConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html>`__
"""
props: PropsDictType = {
"CertificateType": (str, True),
}
[docs]class ConnectionPortRange(AWSProperty):
"""
`ConnectionPortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, True),
"ToPort": (integer, True),
}
[docs]class ContainerGroupsPerInstance(AWSProperty):
"""
`ContainerGroupsPerInstance <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html>`__
"""
props: PropsDictType = {
"DesiredReplicaContainerGroupsPerInstance": (integer, False),
"MaxReplicaContainerGroupsPerInstance": (integer, False),
}
[docs]class ContainerGroupsConfiguration(AWSProperty):
"""
`ContainerGroupsConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html>`__
"""
props: PropsDictType = {
"ConnectionPortRange": (ConnectionPortRange, True),
"ContainerGroupDefinitionNames": ([str], True),
"ContainerGroupsPerInstance": (ContainerGroupsPerInstance, False),
}
[docs]class IpPermission(AWSProperty):
"""
`IpPermission <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, True),
"IpRange": (str, True),
"Protocol": (str, True),
"ToPort": (integer, True),
}
[docs]class LocationCapacity(AWSProperty):
"""
`LocationCapacity <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html>`__
"""
props: PropsDictType = {
"DesiredEC2Instances": (integer, True),
"MaxSize": (integer, True),
"MinSize": (integer, True),
}
[docs]class LocationConfiguration(AWSProperty):
"""
`LocationConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html>`__
"""
props: PropsDictType = {
"Location": (str, True),
"LocationCapacity": (LocationCapacity, False),
}
[docs]class ResourceCreationLimitPolicy(AWSProperty):
"""
`ResourceCreationLimitPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html>`__
"""
props: PropsDictType = {
"NewGameSessionsPerCreator": (integer, False),
"PolicyPeriodInMinutes": (integer, False),
}
[docs]class ServerProcess(AWSProperty):
"""
`ServerProcess <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html>`__
"""
props: PropsDictType = {
"ConcurrentExecutions": (integer, True),
"LaunchPath": (str, True),
"Parameters": (str, False),
}
[docs]class RuntimeConfiguration(AWSProperty):
"""
`RuntimeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html>`__
"""
props: PropsDictType = {
"GameSessionActivationTimeoutSeconds": (integer, False),
"MaxConcurrentGameSessionActivations": (integer, False),
"ServerProcesses": ([ServerProcess], False),
}
[docs]class TargetConfiguration(AWSProperty):
"""
`TargetConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-targetconfiguration.html>`__
"""
props: PropsDictType = {
"TargetValue": (double, True),
}
[docs]class ScalingPolicy(AWSProperty):
"""
`ScalingPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-scalingpolicy.html>`__
"""
props: PropsDictType = {
"ComparisonOperator": (str, False),
"EvaluationPeriods": (integer, False),
"Location": (str, False),
"MetricName": (str, True),
"Name": (str, True),
"PolicyType": (str, False),
"ScalingAdjustment": (integer, False),
"ScalingAdjustmentType": (str, False),
"Status": (str, False),
"TargetConfiguration": (TargetConfiguration, False),
"Threshold": (double, False),
"UpdateStatus": (str, False),
}
[docs]class Fleet(AWSObject):
"""
`Fleet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html>`__
"""
resource_type = "AWS::GameLift::Fleet"
props: PropsDictType = {
"AnywhereConfiguration": (AnywhereConfiguration, False),
"ApplyCapacity": (str, False),
"BuildId": (str, False),
"CertificateConfiguration": (CertificateConfiguration, False),
"ComputeType": (str, False),
"ContainerGroupsConfiguration": (ContainerGroupsConfiguration, False),
"Description": (str, False),
"DesiredEC2Instances": (integer, False),
"EC2InboundPermissions": ([IpPermission], False),
"EC2InstanceType": (str, False),
"FleetType": (str, False),
"InstanceRoleARN": (str, False),
"InstanceRoleCredentialsProvider": (str, False),
"Locations": ([LocationConfiguration], False),
"MaxSize": (integer, False),
"MetricGroups": ([str], False),
"MinSize": (integer, False),
"Name": (str, True),
"NewGameSessionProtectionPolicy": (str, False),
"PeerVpcAwsAccountId": (str, False),
"PeerVpcId": (str, False),
"ResourceCreationLimitPolicy": (ResourceCreationLimitPolicy, False),
"RuntimeConfiguration": (RuntimeConfiguration, False),
"ScalingPolicies": ([ScalingPolicy], False),
"ScriptId": (str, False),
}
[docs]class TargetTrackingConfiguration(AWSProperty):
"""
`TargetTrackingConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html>`__
"""
props: PropsDictType = {
"TargetValue": (double, True),
}
[docs]class AutoScalingPolicy(AWSProperty):
"""
`AutoScalingPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html>`__
"""
props: PropsDictType = {
"EstimatedInstanceWarmup": (double, False),
"TargetTrackingConfiguration": (TargetTrackingConfiguration, True),
}
[docs]class InstanceDefinition(AWSProperty):
"""
`InstanceDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html>`__
"""
props: PropsDictType = {
"InstanceType": (str, True),
"WeightedCapacity": (str, False),
}
[docs]class LaunchTemplate(AWSProperty):
"""
`LaunchTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html>`__
"""
props: PropsDictType = {
"LaunchTemplateId": (str, False),
"LaunchTemplateName": (str, False),
"Version": (str, False),
}
[docs]class GameServerGroup(AWSObject):
"""
`GameServerGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html>`__
"""
resource_type = "AWS::GameLift::GameServerGroup"
props: PropsDictType = {
"AutoScalingPolicy": (AutoScalingPolicy, False),
"BalancingStrategy": (str, False),
"DeleteOption": (str, False),
"GameServerGroupName": (str, True),
"GameServerProtectionPolicy": (str, False),
"InstanceDefinitions": ([InstanceDefinition], True),
"LaunchTemplate": (LaunchTemplate, False),
"MaxSize": (double, False),
"MinSize": (double, False),
"RoleArn": (str, True),
"Tags": (Tags, False),
"VpcSubnets": ([str], False),
}
[docs]class FilterConfiguration(AWSProperty):
"""
`FilterConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html>`__
"""
props: PropsDictType = {
"AllowedLocations": ([str], False),
}
[docs]class GameSessionQueueDestination(AWSProperty):
"""
`GameSessionQueueDestination <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-gamesessionqueuedestination.html>`__
"""
props: PropsDictType = {
"DestinationArn": (str, False),
}
[docs]class PlayerLatencyPolicy(AWSProperty):
"""
`PlayerLatencyPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html>`__
"""
props: PropsDictType = {
"MaximumIndividualPlayerLatencyMilliseconds": (integer, False),
"PolicyDurationSeconds": (integer, False),
}
[docs]class PriorityConfiguration(AWSProperty):
"""
`PriorityConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html>`__
"""
props: PropsDictType = {
"LocationOrder": ([str], False),
"PriorityOrder": ([str], False),
}
[docs]class GameSessionQueue(AWSObject):
"""
`GameSessionQueue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html>`__
"""
resource_type = "AWS::GameLift::GameSessionQueue"
props: PropsDictType = {
"CustomEventData": (str, False),
"Destinations": ([GameSessionQueueDestination], False),
"FilterConfiguration": (FilterConfiguration, False),
"Name": (str, True),
"NotificationTarget": (str, False),
"PlayerLatencyPolicies": ([PlayerLatencyPolicy], False),
"PriorityConfiguration": (PriorityConfiguration, False),
"Tags": (Tags, False),
"TimeoutInSeconds": (integer, False),
}
[docs]class Location(AWSObject):
"""
`Location <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-location.html>`__
"""
resource_type = "AWS::GameLift::Location"
props: PropsDictType = {
"LocationName": (str, True),
"Tags": (Tags, False),
}
[docs]class GameProperty(AWSProperty):
"""
`GameProperty <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Value": (str, True),
}
[docs]class MatchmakingConfiguration(AWSObject):
"""
`MatchmakingConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html>`__
"""
resource_type = "AWS::GameLift::MatchmakingConfiguration"
props: PropsDictType = {
"AcceptanceRequired": (boolean, True),
"AcceptanceTimeoutSeconds": (integer, False),
"AdditionalPlayerCount": (integer, False),
"BackfillMode": (str, False),
"CreationTime": (str, False),
"CustomEventData": (str, False),
"Description": (str, False),
"FlexMatchMode": (str, False),
"GameProperties": ([GameProperty], False),
"GameSessionData": (str, False),
"GameSessionQueueArns": ([str], False),
"Name": (str, True),
"NotificationTarget": (str, False),
"RequestTimeoutSeconds": (integer, True),
"RuleSetArn": (str, False),
"RuleSetName": (str, True),
"Tags": (Tags, False),
}
[docs]class MatchmakingRuleSet(AWSObject):
"""
`MatchmakingRuleSet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html>`__
"""
resource_type = "AWS::GameLift::MatchmakingRuleSet"
props: PropsDictType = {
"Name": (str, True),
"RuleSetBody": (str, True),
"Tags": (Tags, False),
}
[docs]class S3Location(AWSProperty):
"""
`S3Location <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html>`__
"""
props: PropsDictType = {
"Bucket": (str, True),
"Key": (str, True),
"ObjectVersion": (str, False),
"RoleArn": (str, True),
}
[docs]class Script(AWSObject):
"""
`Script <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html>`__
"""
resource_type = "AWS::GameLift::Script"
props: PropsDictType = {
"Name": (str, False),
"StorageLocation": (S3Location, True),
"Tags": (Tags, False),
"Version": (str, False),
}