Class: AWSCDK::GameLift::CfnContainerFleetProps
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::GameLift::CfnContainerFleetProps
- Defined in:
- game_lift/cfn_container_fleet_props.rb
Overview
Properties for defining a CfnContainerFleet.
Instance Attribute Summary collapse
-
#billing_type ⇒ String?
readonly
Indicates whether the fleet uses On-Demand or Spot instances for this fleet.
-
#deployment_configuration ⇒ AWSCDK::IResolvable, ...
readonly
Set of rules for processing a deployment for a container fleet update.
-
#description ⇒ String?
readonly
A meaningful description of the container fleet.
-
#fleet_role_arn ⇒ String
readonly
The unique identifier for an AWS Identity and Access Management (IAM) role with permissions to run your containers on resources that are managed by Amazon GameLift Servers.
-
#game_server_container_group_definition_name ⇒ String?
readonly
The name of the fleet's game server container group definition, which describes how to deploy containers with your game server build and support software onto each fleet instance.
-
#game_server_container_groups_per_instance ⇒ Numeric?
readonly
The number of times to replicate the game server container group on each fleet instance.
-
#game_session_creation_limit_policy ⇒ AWSCDK::IResolvable, ...
readonly
A policy that limits the number of game sessions that each individual player can create on instances in this fleet.
-
#instance_connection_port_range ⇒ AWSCDK::IResolvable, ...
readonly
The set of port numbers to open on each instance in a container fleet.
-
#instance_inbound_permissions ⇒ AWSCDK::IResolvable, ...
readonly
The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet.
-
#instance_type ⇒ String?
readonly
The Amazon EC2 instance type to use for all instances in the fleet.
- #locations ⇒ AWSCDK::IResolvable, ... readonly
-
#log_configuration ⇒ AWSCDK::IResolvable, ...
readonly
The method that is used to collect container logs for the fleet.
-
#metric_groups ⇒ Array<String>?
readonly
The name of an AWS CloudWatch metric group to add this fleet to.
-
#new_game_session_protection_policy ⇒ String?
readonly
Determines whether Amazon GameLift Servers can shut down game sessions on the fleet that are actively running and hosting players.
-
#per_instance_container_group_definition_name ⇒ String?
readonly
The name of the fleet's per-instance container group definition.
-
#player_gateway_mode ⇒ String?
readonly
The player gateway mode for the container fleet.
-
#scaling_policies ⇒ AWSCDK::IResolvable, ...
readonly
A list of rules that control how a fleet is scaled.
-
#tags ⇒ Array<AWSCDK::CfnTag>?
readonly
An array of key-value pairs to apply to this resource.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(fleet_role_arn:, billing_type: nil, deployment_configuration: nil, description: nil, game_server_container_group_definition_name: nil, game_server_container_groups_per_instance: nil, game_session_creation_limit_policy: nil, instance_connection_port_range: nil, instance_inbound_permissions: nil, instance_type: nil, locations: nil, log_configuration: nil, metric_groups: nil, new_game_session_protection_policy: nil, per_instance_container_group_definition_name: nil, player_gateway_mode: nil, scaling_policies: nil, tags: nil) ⇒ CfnContainerFleetProps
constructor
A new instance of CfnContainerFleetProps.
- #to_jsii ⇒ Object
Constructor Details
#initialize(fleet_role_arn:, billing_type: nil, deployment_configuration: nil, description: nil, game_server_container_group_definition_name: nil, game_server_container_groups_per_instance: nil, game_session_creation_limit_policy: nil, instance_connection_port_range: nil, instance_inbound_permissions: nil, instance_type: nil, locations: nil, log_configuration: nil, metric_groups: nil, new_game_session_protection_policy: nil, per_instance_container_group_definition_name: nil, player_gateway_mode: nil, scaling_policies: nil, tags: nil) ⇒ CfnContainerFleetProps
Returns a new instance of CfnContainerFleetProps.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'game_lift/cfn_container_fleet_props.rb', line 27 def initialize(fleet_role_arn:, billing_type: nil, deployment_configuration: nil, description: nil, game_server_container_group_definition_name: nil, game_server_container_groups_per_instance: nil, game_session_creation_limit_policy: nil, instance_connection_port_range: nil, instance_inbound_permissions: nil, instance_type: nil, locations: nil, log_configuration: nil, metric_groups: nil, new_game_session_protection_policy: nil, per_instance_container_group_definition_name: nil, player_gateway_mode: nil, scaling_policies: nil, tags: nil) @fleet_role_arn = fleet_role_arn Jsii::Type.check_type(@fleet_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "fleetRoleArn") @billing_type = billing_type Jsii::Type.check_type(@billing_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "billingType") unless @billing_type.nil? @deployment_configuration = deployment_configuration.is_a?(Hash) ? ::AWSCDK::GameLift::CfnContainerFleet::DeploymentConfigurationProperty.new(**deployment_configuration.transform_keys(&:to_sym)) : deployment_configuration Jsii::Type.check_type(@deployment_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19nYW1lbGlmdC5DZm5Db250YWluZXJGbGVldC5EZXBsb3ltZW50Q29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "deploymentConfiguration") unless @deployment_configuration.nil? @description = description Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil? @game_server_container_group_definition_name = game_server_container_group_definition_name Jsii::Type.check_type(@game_server_container_group_definition_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "gameServerContainerGroupDefinitionName") unless @game_server_container_group_definition_name.nil? @game_server_container_groups_per_instance = game_server_container_groups_per_instance Jsii::Type.check_type(@game_server_container_groups_per_instance, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "gameServerContainerGroupsPerInstance") unless @game_server_container_groups_per_instance.nil? @game_session_creation_limit_policy = game_session_creation_limit_policy.is_a?(Hash) ? ::AWSCDK::GameLift::CfnContainerFleet::GameSessionCreationLimitPolicyProperty.new(**game_session_creation_limit_policy.transform_keys(&:to_sym)) : game_session_creation_limit_policy Jsii::Type.check_type(@game_session_creation_limit_policy, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19nYW1lbGlmdC5DZm5Db250YWluZXJGbGVldC5HYW1lU2Vzc2lvbkNyZWF0aW9uTGltaXRQb2xpY3lQcm9wZXJ0eSJ9XX19")), "gameSessionCreationLimitPolicy") unless @game_session_creation_limit_policy.nil? @instance_connection_port_range = instance_connection_port_range.is_a?(Hash) ? ::AWSCDK::GameLift::CfnContainerFleet::ConnectionPortRangeProperty.new(**instance_connection_port_range.transform_keys(&:to_sym)) : instance_connection_port_range Jsii::Type.check_type(@instance_connection_port_range, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19nYW1lbGlmdC5DZm5Db250YWluZXJGbGVldC5Db25uZWN0aW9uUG9ydFJhbmdlUHJvcGVydHkifV19fQ==")), "instanceConnectionPortRange") unless @instance_connection_port_range.nil? @instance_inbound_permissions = Jsii::Type.check_type(@instance_inbound_permissions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZ2FtZWxpZnQuQ2ZuQ29udGFpbmVyRmxlZXQuSXBQZXJtaXNzaW9uUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "instanceInboundPermissions") unless @instance_inbound_permissions.nil? @instance_type = instance_type Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType") unless @instance_type.nil? @locations = locations Jsii::Type.check_type(@locations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZ2FtZWxpZnQuQ2ZuQ29udGFpbmVyRmxlZXQuTG9jYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "locations") unless @locations.nil? @log_configuration = log_configuration.is_a?(Hash) ? ::AWSCDK::GameLift::CfnContainerFleet::LogConfigurationProperty.new(**log_configuration.transform_keys(&:to_sym)) : log_configuration Jsii::Type.check_type(@log_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19nYW1lbGlmdC5DZm5Db250YWluZXJGbGVldC5Mb2dDb25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "logConfiguration") unless @log_configuration.nil? @metric_groups = metric_groups Jsii::Type.check_type(@metric_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "metricGroups") unless @metric_groups.nil? @new_game_session_protection_policy = new_game_session_protection_policy Jsii::Type.check_type(@new_game_session_protection_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "newGameSessionProtectionPolicy") unless @new_game_session_protection_policy.nil? @per_instance_container_group_definition_name = per_instance_container_group_definition_name Jsii::Type.check_type(@per_instance_container_group_definition_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "perInstanceContainerGroupDefinitionName") unless @per_instance_container_group_definition_name.nil? @player_gateway_mode = player_gateway_mode Jsii::Type.check_type(@player_gateway_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "playerGatewayMode") unless @player_gateway_mode.nil? @scaling_policies = scaling_policies Jsii::Type.check_type(@scaling_policies, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZ2FtZWxpZnQuQ2ZuQ29udGFpbmVyRmxlZXQuU2NhbGluZ1BvbGljeVByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "scalingPolicies") unless @scaling_policies.nil? @tags = .is_a?(Array) ? .map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil? end |
Instance Attribute Details
#billing_type ⇒ String? (readonly)
Indicates whether the fleet uses On-Demand or Spot instances for this fleet.
Learn more about when to use On-Demand versus Spot Instances . You can't update this fleet property.
By default, this property is set to ON_DEMAND .
81 82 83 |
# File 'game_lift/cfn_container_fleet_props.rb', line 81 def billing_type @billing_type end |
#deployment_configuration ⇒ AWSCDK::IResolvable, ... (readonly)
Set of rules for processing a deployment for a container fleet update.
86 87 88 |
# File 'game_lift/cfn_container_fleet_props.rb', line 86 def deployment_configuration @deployment_configuration end |
#description ⇒ String? (readonly)
A meaningful description of the container fleet.
91 92 93 |
# File 'game_lift/cfn_container_fleet_props.rb', line 91 def description @description end |
#fleet_role_arn ⇒ String (readonly)
The unique identifier for an AWS Identity and Access Management (IAM) role with permissions to run your containers on resources that are managed by Amazon GameLift Servers.
See Set up an IAM service role . This fleet property can't be changed.
72 73 74 |
# File 'game_lift/cfn_container_fleet_props.rb', line 72 def fleet_role_arn @fleet_role_arn end |
#game_server_container_group_definition_name ⇒ String? (readonly)
The name of the fleet's game server container group definition, which describes how to deploy containers with your game server build and support software onto each fleet instance.
96 97 98 |
# File 'game_lift/cfn_container_fleet_props.rb', line 96 def game_server_container_group_definition_name @game_server_container_group_definition_name end |
#game_server_container_groups_per_instance ⇒ Numeric? (readonly)
The number of times to replicate the game server container group on each fleet instance.
101 102 103 |
# File 'game_lift/cfn_container_fleet_props.rb', line 101 def game_server_container_groups_per_instance @game_server_container_groups_per_instance end |
#game_session_creation_limit_policy ⇒ AWSCDK::IResolvable, ... (readonly)
A policy that limits the number of game sessions that each individual player can create on instances in this fleet.
The limit applies for a specified span of time.
108 109 110 |
# File 'game_lift/cfn_container_fleet_props.rb', line 108 def game_session_creation_limit_policy @game_session_creation_limit_policy end |
#instance_connection_port_range ⇒ AWSCDK::IResolvable, ... (readonly)
The set of port numbers to open on each instance in a container fleet.
Connection ports are used by inbound traffic to connect with processes that are running in containers on the fleet.
115 116 117 |
# File 'game_lift/cfn_container_fleet_props.rb', line 115 def instance_connection_port_range @instance_connection_port_range end |
#instance_inbound_permissions ⇒ AWSCDK::IResolvable, ... (readonly)
The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet.
120 121 122 |
# File 'game_lift/cfn_container_fleet_props.rb', line 120 def @instance_inbound_permissions end |
#instance_type ⇒ String? (readonly)
The Amazon EC2 instance type to use for all instances in the fleet.
Instance type determines the computing resources and processing power that's available to host your game servers. This includes including CPU, memory, storage, and networking capacity. You can't update this fleet property.
127 128 129 |
# File 'game_lift/cfn_container_fleet_props.rb', line 127 def instance_type @instance_type end |
#locations ⇒ AWSCDK::IResolvable, ... (readonly)
130 131 132 |
# File 'game_lift/cfn_container_fleet_props.rb', line 130 def locations @locations end |
#log_configuration ⇒ AWSCDK::IResolvable, ... (readonly)
The method that is used to collect container logs for the fleet.
Amazon GameLift Servers saves all standard output for each container in logs, including game session logs.
CLOUDWATCH-- Send logs to an Amazon CloudWatch log group that you define. Each container emits a log stream, which is organized in the log group.S3-- Store logs in an Amazon S3 bucket that you define.NONE-- Don't collect container logs.
141 142 143 |
# File 'game_lift/cfn_container_fleet_props.rb', line 141 def log_configuration @log_configuration end |
#metric_groups ⇒ Array<String>? (readonly)
The name of an AWS CloudWatch metric group to add this fleet to.
Metric groups aggregate metrics for multiple fleets.
148 149 150 |
# File 'game_lift/cfn_container_fleet_props.rb', line 148 def metric_groups @metric_groups end |
#new_game_session_protection_policy ⇒ String? (readonly)
Determines whether Amazon GameLift Servers can shut down game sessions on the fleet that are actively running and hosting players.
Amazon GameLift Servers might prompt an instance shutdown when scaling down fleet capacity or when retiring unhealthy instances. You can also set game session protection for individual game sessions using UpdateGameSession .
- NoProtection -- Game sessions can be shut down during active gameplay.
- FullProtection -- Game sessions in
ACTIVEstatus can't be shut down.
158 159 160 |
# File 'game_lift/cfn_container_fleet_props.rb', line 158 def new_game_session_protection_policy @new_game_session_protection_policy end |
#per_instance_container_group_definition_name ⇒ String? (readonly)
The name of the fleet's per-instance container group definition.
163 164 165 |
# File 'game_lift/cfn_container_fleet_props.rb', line 163 def per_instance_container_group_definition_name @per_instance_container_group_definition_name end |
#player_gateway_mode ⇒ String? (readonly)
The player gateway mode for the container fleet.
168 169 170 |
# File 'game_lift/cfn_container_fleet_props.rb', line 168 def player_gateway_mode @player_gateway_mode end |
#scaling_policies ⇒ AWSCDK::IResolvable, ... (readonly)
A list of rules that control how a fleet is scaled.
173 174 175 |
# File 'game_lift/cfn_container_fleet_props.rb', line 173 def scaling_policies @scaling_policies end |
#tags ⇒ Array<AWSCDK::CfnTag>? (readonly)
An array of key-value pairs to apply to this resource.
178 179 180 |
# File 'game_lift/cfn_container_fleet_props.rb', line 178 def @tags end |
Class Method Details
.jsii_properties ⇒ Object
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'game_lift/cfn_container_fleet_props.rb', line 180 def self.jsii_properties { :fleet_role_arn => "fleetRoleArn", :billing_type => "billingType", :deployment_configuration => "deploymentConfiguration", :description => "description", :game_server_container_group_definition_name => "gameServerContainerGroupDefinitionName", :game_server_container_groups_per_instance => "gameServerContainerGroupsPerInstance", :game_session_creation_limit_policy => "gameSessionCreationLimitPolicy", :instance_connection_port_range => "instanceConnectionPortRange", :instance_inbound_permissions => "instanceInboundPermissions", :instance_type => "instanceType", :locations => "locations", :log_configuration => "logConfiguration", :metric_groups => "metricGroups", :new_game_session_protection_policy => "newGameSessionProtectionPolicy", :per_instance_container_group_definition_name => "perInstanceContainerGroupDefinitionName", :player_gateway_mode => "playerGatewayMode", :scaling_policies => "scalingPolicies", :tags => "tags", } end |
Instance Method Details
#to_jsii ⇒ Object
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'game_lift/cfn_container_fleet_props.rb', line 203 def to_jsii result = {} result.merge!({ "fleetRoleArn" => @fleet_role_arn, "billingType" => @billing_type, "deploymentConfiguration" => @deployment_configuration, "description" => @description, "gameServerContainerGroupDefinitionName" => @game_server_container_group_definition_name, "gameServerContainerGroupsPerInstance" => @game_server_container_groups_per_instance, "gameSessionCreationLimitPolicy" => @game_session_creation_limit_policy, "instanceConnectionPortRange" => @instance_connection_port_range, "instanceInboundPermissions" => @instance_inbound_permissions, "instanceType" => @instance_type, "locations" => @locations, "logConfiguration" => @log_configuration, "metricGroups" => @metric_groups, "newGameSessionProtectionPolicy" => @new_game_session_protection_policy, "perInstanceContainerGroupDefinitionName" => @per_instance_container_group_definition_name, "playerGatewayMode" => @player_gateway_mode, "scalingPolicies" => @scaling_policies, "tags" => @tags, }) result.compact end |