Class: AWSCDK::GameLift::CfnContainerFleetProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
game_lift/cfn_container_fleet_props.rb

Overview

Properties for defining a CfnContainerFleet.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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.

Parameters:



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 = 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 = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
end

Instance Attribute Details

#billing_typeString? (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_configurationAWSCDK::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

#descriptionString? (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_arnString (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_nameString? (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_instanceNumeric? (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_policyAWSCDK::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_rangeAWSCDK::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_permissionsAWSCDK::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
  @instance_inbound_permissions
end

#instance_typeString? (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

#log_configurationAWSCDK::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_groupsArray<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_policyString? (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 ACTIVE status 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_nameString? (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_modeString? (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_policiesAWSCDK::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

#tagsArray<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
  @tags
end

Class Method Details

.jsii_propertiesObject



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_jsiiObject



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