aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
917 lines • 118 kB
TypeScript
import * as cdk from "../../core";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
/**
* The `AWS::GameLift::Alias` resource creates an alias for an Amazon GameLift (GameLift) fleet destination.
*
* There are two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias displays a message instead of routing players to an active fleet. For example, a terminal alias might display a URL link that directs players to an upgrade site. You can use aliases to define destinations in a game session queue or when requesting new game sessions.
*
* @cloudformationResource AWS::GameLift::Alias
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html
*/
export declare class CfnAlias extends cdk.CfnResource implements cdk.IInspectable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnAlias from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnAlias;
/**
* A unique identifier for the alias. For example, `arn:aws:gamelift:us-west-1::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912`
*
* Alias IDs are unique within a Region.
*
* @cloudformationAttribute AliasId
*/
readonly attrAliasId: string;
/**
* A human-readable description of the alias.
*/
description?: string;
/**
* A descriptive label that is associated with an alias.
*/
name: string;
/**
* The routing configuration, including routing type and fleet target, for the alias.
*/
routingStrategy: cdk.IResolvable | CfnAlias.RoutingStrategyProperty;
/**
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnAliasProps);
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnAlias {
/**
* The routing configuration for a fleet alias.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html
*/
interface RoutingStrategyProperty {
/**
* A unique identifier for a fleet that the alias points to.
*
* If you specify `SIMPLE` for the `Type` property, you must specify this property.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-fleetid
*/
readonly fleetId?: string;
/**
* The message text to be used with a terminal routing strategy.
*
* If you specify `TERMINAL` for the `Type` property, you must specify this property.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-message
*/
readonly message?: string;
/**
* A type of routing strategy.
*
* Possible routing types include the following:
*
* - *SIMPLE* - The alias resolves to one specific fleet. Use this type when routing to active fleets.
* - *TERMINAL* - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a `TerminalRoutingStrategyException` with the message that you specified in the `Message` property.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-type
*/
readonly type: string;
}
}
/**
* Properties for defining a `CfnAlias`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html
*/
export interface CfnAliasProps {
/**
* A human-readable description of the alias.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-description
*/
readonly description?: string;
/**
* A descriptive label that is associated with an alias.
*
* Alias names do not need to be unique.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-name
*/
readonly name: string;
/**
* The routing configuration, including routing type and fleet target, for the alias.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-routingstrategy
*/
readonly routingStrategy: cdk.IResolvable | CfnAlias.RoutingStrategyProperty;
}
/**
* The `AWS::GameLift::Build` resource creates a game server build that is installed and run on instances in an Amazon GameLift fleet.
*
* This resource points to an Amazon S3 location that contains a zip file with all of the components of the game server build.
*
* @cloudformationResource AWS::GameLift::Build
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html
*/
export declare class CfnBuild extends cdk.CfnResource implements cdk.IInspectable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnBuild from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnBuild;
/**
* A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created.
*
* @cloudformationAttribute BuildId
*/
readonly attrBuildId: string;
/**
* A descriptive label that is associated with a build.
*/
name?: string;
/**
* The operating system that your game server binaries run on.
*/
operatingSystem?: string;
/**
* A server SDK version you used when integrating your game server build with Amazon GameLift.
*/
serverSdkVersion?: string;
/**
* Information indicating where your game build files are stored.
*/
storageLocation?: cdk.IResolvable | CfnBuild.StorageLocationProperty;
/**
* Version information that is associated with this build.
*/
version?: string;
/**
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props?: CfnBuildProps);
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnBuild {
/**
* The location in Amazon S3 where build or script files are stored for access by Amazon GameLift.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html
*/
interface StorageLocationProperty {
/**
* An Amazon S3 bucket identifier. Thename of the S3 bucket.
*
* > Amazon GameLift doesn't support uploading from Amazon S3 buckets with names that contain a dot (.).
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storagelocation-bucket
*/
readonly bucket: string;
/**
* The name of the zip file that contains the build files or script files.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storagelocation-key
*/
readonly key: string;
/**
* The version of the file, if object versioning is turned on for the bucket.
*
* Amazon GameLift uses this information when retrieving files from your S3 bucket. To retrieve a specific version of the file, provide an object version. To retrieve the latest version of the file, do not set this parameter.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storagelocation-objectversion
*/
readonly objectVersion?: string;
/**
* The Amazon Resource Name ( [ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html) ) for an IAM role that allows Amazon GameLift to access the S3 bucket.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storagelocation-rolearn
*/
readonly roleArn: string;
}
}
/**
* Properties for defining a `CfnBuild`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html
*/
export interface CfnBuildProps {
/**
* A descriptive label that is associated with a build.
*
* Build names do not need to be unique.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-name
*/
readonly name?: string;
/**
* The operating system that your game server binaries run on.
*
* This value determines the type of fleet resources that you use for this build. If your game build contains multiple executables, they all must run on the same operating system. You must specify a valid operating system in this request. There is no default value. You can't change a build's operating system later.
*
* > If you have active fleets using the Windows Server 2012 operating system, you can continue to create new builds using this OS until October 10, 2023, when Microsoft ends its support. All others must use Windows Server 2016 when creating new Windows-based builds.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-operatingsystem
*/
readonly operatingSystem?: string;
/**
* A server SDK version you used when integrating your game server build with Amazon GameLift.
*
* For more information see [Integrate games with custom game servers](https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-custom-intro.html) . By default Amazon GameLift sets this value to `4.0.2` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-serversdkversion
*/
readonly serverSdkVersion?: string;
/**
* Information indicating where your game build files are stored.
*
* Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.
*
* If a `StorageLocation` is specified, the size of your file can be found in your Amazon S3 bucket. Amazon GameLift will report a `SizeOnDisk` of 0.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-storagelocation
*/
readonly storageLocation?: cdk.IResolvable | CfnBuild.StorageLocationProperty;
/**
* Version information that is associated with this build.
*
* Version strings do not need to be unique.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-version
*/
readonly version?: string;
}
/**
* The `AWS::GameLift::Fleet` resource creates an Amazon GameLift (GameLift) fleet to host custom game server or Realtime Servers.
*
* A fleet is a set of EC2 instances, configured with instructions to run game servers on each instance.
*
* @cloudformationResource AWS::GameLift::Fleet
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html
*/
export declare class CfnFleet extends cdk.CfnResource implements cdk.IInspectable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnFleet from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnFleet;
/**
* A unique identifier for the fleet.
*
* @cloudformationAttribute FleetId
*/
readonly attrFleetId: string;
/**
* Amazon GameLift Anywhere configuration options for your Anywhere fleets.
*/
anywhereConfiguration?: CfnFleet.AnywhereConfigurationProperty | cdk.IResolvable;
/**
* A unique identifier for a build to be deployed on the new fleet.
*/
buildId?: string;
/**
* Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet.
*/
certificateConfiguration?: CfnFleet.CertificateConfigurationProperty | cdk.IResolvable;
/**
* The type of compute resource used to host your game servers.
*/
computeType?: string;
/**
* A description for the fleet.
*/
description?: string;
/**
* The number of EC2 instances that you want this fleet to host.
*/
desiredEc2Instances?: number;
/**
* The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.
*/
ec2InboundPermissions?: Array<CfnFleet.IpPermissionProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances.
*/
ec2InstanceType?: string;
/**
* Indicates whether to use On-Demand or Spot instances for this fleet.
*/
fleetType?: string;
/**
* A unique identifier for an IAM role that manages access to your AWS services.
*/
instanceRoleArn?: string;
/**
* Credentials provider implementation that loads credentials from the Amazon EC2 Instance Metadata Service.
*/
instanceRoleCredentialsProvider?: string;
/**
* A set of remote locations to deploy additional instances to and manage as part of the fleet.
*/
locations?: Array<cdk.IResolvable | CfnFleet.LocationConfigurationProperty> | cdk.IResolvable;
/**
* This parameter is no longer used.
*
* @deprecated this property has been deprecated
*/
logPaths?: Array<string>;
/**
* The maximum number of instances that are allowed in the specified fleet location.
*/
maxSize?: number;
/**
* The name of an AWS CloudWatch metric group to add this fleet to.
*/
metricGroups?: Array<string>;
/**
* The minimum number of instances that are allowed in the specified fleet location.
*/
minSize?: number;
/**
* A descriptive label that is associated with a fleet.
*/
name: string;
/**
* The status of termination protection for active game sessions on the fleet.
*/
newGameSessionProtectionPolicy?: string;
/**
* Used when peering your Amazon GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC.
*/
peerVpcAwsAccountId?: string;
/**
* A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet.
*/
peerVpcId?: string;
/**
* A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time.
*/
resourceCreationLimitPolicy?: cdk.IResolvable | CfnFleet.ResourceCreationLimitPolicyProperty;
/**
* Instructions for how to launch and maintain server processes on instances in the fleet.
*/
runtimeConfiguration?: cdk.IResolvable | CfnFleet.RuntimeConfigurationProperty;
/**
* The unique identifier for a Realtime configuration script to be deployed on fleet instances.
*/
scriptId?: string;
/**
* This parameter is no longer used but is retained for backward compatibility.
*
* @deprecated this property has been deprecated
*/
serverLaunchParameters?: string;
/**
* This parameter is no longer used.
*
* @deprecated this property has been deprecated
*/
serverLaunchPath?: string;
/**
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnFleetProps);
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnFleet {
/**
* A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an instance in a fleet.
*
* New game sessions are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges. Fleets with custom game builds must have permissions explicitly set. For Realtime Servers fleets, GameLift automatically opens two port ranges, one for TCP messaging and one for UDP.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html
*/
interface IpPermissionProperty {
/**
* A starting value for a range of allowed port numbers.
*
* For fleets using Linux builds, only ports `22` and `1026-60000` are valid.
*
* For fleets using Windows builds, only ports `1026-60000` are valid.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-fromport
*/
readonly fromPort: number;
/**
* A range of allowed IP addresses.
*
* This value must be expressed in CIDR notation. Example: " `000.000.000.000/[subnet mask]` " or optionally the shortened version " `0.0.0.0/[subnet mask]` ".
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-iprange
*/
readonly ipRange: string;
/**
* The network communication protocol used by the fleet.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-protocol
*/
readonly protocol: string;
/**
* An ending value for a range of allowed port numbers.
*
* Port numbers are end-inclusive. This value must be equal to or greater than `FromPort` .
*
* For fleets using Linux builds, only ports `22` and `1026-60000` are valid.
*
* For fleets using Windows builds, only ports `1026-60000` are valid.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-toport
*/
readonly toPort: number;
}
/**
* A remote location where a multi-location fleet can deploy game servers for game hosting.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html
*/
interface LocationConfigurationProperty {
/**
* An AWS Region code, such as `us-west-2` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html#cfn-gamelift-fleet-locationconfiguration-location
*/
readonly location: string;
/**
* Current resource capacity settings in a specified fleet or location.
*
* The location value might refer to a fleet's remote location or its home Region.
*
* *Related actions*
*
* [DescribeFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html) | [DescribeFleetLocationCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html) | [UpdateFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html)
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html#cfn-gamelift-fleet-locationconfiguration-locationcapacity
*/
readonly locationCapacity?: cdk.IResolvable | CfnFleet.LocationCapacityProperty;
}
/**
* Current resource capacity settings in a specified fleet or location.
*
* The location value might refer to a fleet's remote location or its home Region.
*
* *Related actions*
*
* [DescribeFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html) | [DescribeFleetLocationCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html) | [UpdateFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html)
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html
*/
interface LocationCapacityProperty {
/**
* The number of Amazon EC2 instances you want to maintain in the specified fleet location.
*
* This value must fall between the minimum and maximum size limits. Changes in desired instance value can take up to 1 minute to be reflected when viewing the fleet's capacity settings.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-desiredec2instances
*/
readonly desiredEc2Instances: number;
/**
* The maximum number of instances that are allowed in the specified fleet location.
*
* If this parameter is not set, the default is 1.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-maxsize
*/
readonly maxSize: number;
/**
* The minimum number of instances that are allowed in the specified fleet location.
*
* If this parameter is not set, the default is 0.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-minsize
*/
readonly minSize: number;
}
/**
* A collection of server process configurations that describe the set of processes to run on each instance in a fleet.
*
* Server processes run either an executable in a custom game build or a Realtime Servers script. GameLift launches the configured processes, manages their life cycle, and replaces them as needed. Each instance checks regularly for an updated runtime configuration.
*
* A GameLift instance is limited to 50 processes running concurrently. To calculate the total number of processes in a runtime configuration, add the values of the `ConcurrentExecutions` parameter for each ServerProcess. Learn more about [Running Multiple Processes on a Fleet](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html) .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html
*/
interface RuntimeConfigurationProperty {
/**
* The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players.
*
* During this time, the game session is in status `ACTIVATING` . If the game session does not become active before the timeout, it is ended and the game session status is changed to `TERMINATED` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-gamesessionactivationtimeoutseconds
*/
readonly gameSessionActivationTimeoutSeconds?: number;
/**
* The number of game sessions in status `ACTIVATING` to allow on an instance.
*
* This setting limits the instance resources that can be used for new game activations at any one time.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-maxconcurrentgamesessionactivations
*/
readonly maxConcurrentGameSessionActivations?: number;
/**
* A collection of server process configurations that identify what server processes to run on each instance in a fleet.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-serverprocesses
*/
readonly serverProcesses?: Array<cdk.IResolvable | CfnFleet.ServerProcessProperty> | cdk.IResolvable;
}
/**
* A set of instructions for launching server processes on each instance in a fleet.
*
* Server processes run either an executable in a custom game build or a Realtime Servers script.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html
*/
interface ServerProcessProperty {
/**
* The number of server processes using this configuration that run concurrently on each instance.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-concurrentexecutions
*/
readonly concurrentExecutions: number;
/**
* The location of a game build executable or Realtime script.
*
* Game builds and Realtime scripts are installed on instances at the root:
*
* - Windows (custom game builds only): `C:\game` . Example: " `C:\game\MyGame\server.exe` "
* - Linux: `/local/game` . Examples: " `/local/game/MyGame/server.exe` " or " `/local/game/MyRealtimeScript.js` "
*
* > Amazon GameLift doesn't support the use of setup scripts that launch the game executable. For custom game builds, this parameter must indicate the executable that calls the server SDK operations `initSDK()` and `ProcessReady()` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-launchpath
*/
readonly launchPath: string;
/**
* An optional list of parameters to pass to the server executable or Realtime script on launch.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-parameters
*/
readonly parameters?: string;
}
/**
* Amazon GameLift Anywhere configuration options for your Anywhere fleets.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html
*/
interface AnywhereConfigurationProperty {
/**
* The cost to run your fleet per hour.
*
* Amazon GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see [Setting up queues](https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html) in the *Amazon GameLift Developer Guide* .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html#cfn-gamelift-fleet-anywhereconfiguration-cost
*/
readonly cost: string;
}
/**
* A policy that limits the number of game sessions a player can create on the same fleet.
*
* This optional policy gives game owners control over how players can consume available game server resources. A resource creation policy makes the following statement: "An individual player can create a maximum number of new game sessions within a specified time period".
*
* The policy is evaluated when a player tries to create a new game session. For example, assume you have a policy of 10 new game sessions and a time period of 60 minutes. On receiving a `CreateGameSession` request, Amazon GameLift checks that the player (identified by `CreatorId` ) has created fewer than 10 game sessions in the past 60 minutes.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html
*/
interface ResourceCreationLimitPolicyProperty {
/**
* A policy that puts limits on the number of game sessions that a player can create within a specified span of time.
*
* With this policy, you can control players' ability to consume available resources.
*
* The policy is evaluated when a player tries to create a new game session. On receiving a `CreateGameSession` request, Amazon GameLift checks that the player (identified by `CreatorId` ) has created fewer than game session limit in the specified time period.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html#cfn-gamelift-fleet-resourcecreationlimitpolicy-newgamesessionspercreator
*/
readonly newGameSessionsPerCreator?: number;
/**
* The time span used in evaluating the resource creation limit policy.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html#cfn-gamelift-fleet-resourcecreationlimitpolicy-policyperiodinminutes
*/
readonly policyPeriodInMinutes?: number;
}
/**
* Determines whether a TLS/SSL certificate is generated for a fleet.
*
* This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. The certificate can be retrieved by calling the [GameLift Server SDK](https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk.html) operation `GetInstanceCertificate` .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
*/
interface CertificateConfigurationProperty {
/**
* Indicates whether a TLS/SSL certificate is generated for a fleet.
*
* Valid values include:
*
* - *GENERATED* - Generate a TLS/SSL certificate for this fleet.
* - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
*/
readonly certificateType: string;
}
}
/**
* Properties for defining a `CfnFleet`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html
*/
export interface CfnFleetProps {
/**
* Amazon GameLift Anywhere configuration options for your Anywhere fleets.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-anywhereconfiguration
*/
readonly anywhereConfiguration?: CfnFleet.AnywhereConfigurationProperty | cdk.IResolvable;
/**
* A unique identifier for a build to be deployed on the new fleet.
*
* If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a `READY` status. This fleet setting cannot be changed once the fleet is created.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-buildid
*/
readonly buildId?: string;
/**
* Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet.
*
* Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the `CertificateConfiguration` is `DISABLED` . You can't change this property after you create the fleet.
*
* AWS Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition.
*
* > ACM isn't available in all AWS regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see [Supported Regions](https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html) in the *AWS Certificate Manager User Guide* .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-certificateconfiguration
*/
readonly certificateConfiguration?: CfnFleet.CertificateConfigurationProperty | cdk.IResolvable;
/**
* The type of compute resource used to host your game servers.
*
* You can use your own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed Amazon GameLift.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-computetype
*/
readonly computeType?: string;
/**
* A description for the fleet.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-description
*/
readonly description?: string;
/**
* The number of EC2 instances that you want this fleet to host.
*
* When creating a new fleet, GameLift automatically sets this value to "1" and initiates a single instance. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-desiredec2instances
*/
readonly desiredEc2Instances?: number;
/**
* The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.
*
* If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2inboundpermissions
*/
readonly ec2InboundPermissions?: Array<CfnFleet.IpPermissionProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances.
*
* Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See [Amazon Elastic Compute Cloud Instance Types](https://docs.aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2instancetype
*/
readonly ec2InstanceType?: string;
/**
* Indicates whether to use On-Demand or Spot instances for this fleet.
*
* By default, this property is set to `ON_DEMAND` . Learn more about when to use [On-Demand versus Spot Instances](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot) . This property cannot be changed after the fleet is created.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-fleettype
*/
readonly fleetType?: string;
/**
* A unique identifier for an IAM role that manages access to your AWS services.
*
* With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN by using the [IAM dashboard](https://docs.aws.amazon.com/iam/) in the AWS Management Console . Learn more about using on-box credentials for your game servers at [Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-instancerolearn
*/
readonly instanceRoleArn?: string;
/**
* Credentials provider implementation that loads credentials from the Amazon EC2 Instance Metadata Service.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-instancerolecredentialsprovider
*/
readonly instanceRoleCredentialsProvider?: string;
/**
* A set of remote locations to deploy additional instances to and manage as part of the fleet.
*
* This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as `us-west-2` . To create a fleet with instances in the home Region only, don't use this parameter.
*
* To use this parameter, Amazon GameLift requires you to use your home location in the request.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-locations
*/
readonly locations?: Array<cdk.IResolvable | CfnFleet.LocationConfigurationProperty> | cdk.IResolvable;
/**
* This parameter is no longer used.
*
* When hosting a custom game build, specify where Amazon GameLift should store log files using the Amazon GameLift server API call ProcessReady()
*
* @deprecated this property has been deprecated
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-logpaths
*/
readonly logPaths?: Array<string>;
/**
* The maximum number of instances that are allowed in the specified fleet location.
*
* If this parameter is not set, the default is 1.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-maxsize
*/
readonly maxSize?: number;
/**
* The name of an AWS CloudWatch metric group to add this fleet to.
*
* A metric group is used to aggregate the metrics for multiple fleets. You can specify an existing metric group name or set a new name to create a new metric group. A fleet can be included in only one metric group at a time.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-metricgroups
*/
readonly metricGroups?: Array<string>;
/**
* The minimum number of instances that are allowed in the specified fleet location.
*
* If this parameter is not set, the default is 0.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-minsize
*/
readonly minSize?: number;
/**
* A descriptive label that is associated with a fleet.
*
* Fleet names do not need to be unique.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-name
*/
readonly name: string;
/**
* The status of termination protection for active game sessions on the fleet.
*
* By default, this property is set to `NoProtection` .
*
* - *NoProtection* - Game sessions can be terminated during active gameplay as a result of a scale-down event.
* - *FullProtection* - Game sessions in `ACTIVE` status cannot be terminated during a scale-down event.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-newgamesessionprotectionpolicy
*/
readonly newGameSessionProtectionPolicy?: string;
/**
* Used when peering your Amazon GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC.
*
* You can find your account ID in the AWS Management Console under account settings.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-peervpcawsaccountid
*/
readonly peerVpcAwsAccountId?: string;
/**
* A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet.
*
* The VPC must be in the same Region as your fleet. To look up a VPC ID, use the [VPC Dashboard](https://docs.aws.amazon.com/vpc/) in the AWS Management Console . Learn more about VPC peering in [VPC Peering with Amazon GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-peervpcid
*/
readonly peerVpcId?: string;
/**
* A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-resourcecreationlimitpolicy
*/
readonly resourceCreationLimitPolicy?: cdk.IResolvable | CfnFleet.ResourceCreationLimitPolicyProperty;
/**
* Instructions for how to launch and maintain server processes on instances in the fleet.
*
* The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently.
*
* > The `RuntimeConfiguration` parameter is required unless the fleet is being configured using the older parameters `ServerLaunchPath` and `ServerLaunchParameters` , which are still supported for backward compatibility.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-runtimeconfiguration
*/
readonly runtimeConfiguration?: cdk.IResolvable | CfnFleet.RuntimeConfigurationProperty;
/**
* The unique identifier for a Realtime configuration script to be deployed on fleet instances.
*
* You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift prior to creating the fleet. This fleet property cannot be changed later.
*
* > You can't use the `!Ref` command to reference a script created with a CloudFormation template for the fleet property `ScriptId` . Instead, use `Fn::GetAtt Script.Arn` or `Fn::GetAtt Script.Id` to retrieve either of these properties as input for `ScriptId` . Alternatively, enter a `ScriptId` string manually.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-scriptid
*/
readonly scriptId?: string;
/**
* This parameter is no longer used but is retained for backward compatibility.
*
* Instead, specify server launch parameters in the RuntimeConfiguration parameter. A request must specify either a runtime configuration or values for both ServerLaunchParameters and ServerLaunchPath.
*
* @deprecated this property has been deprecated
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-serverlaunchparameters
*/
readonly serverLaunchParameters?: string;
/**
* This parameter is no longer used.
*
* Instead, specify a server launch path using the RuntimeConfiguration parameter. Requests that specify a server launch path and launch parameters instead of a runtime configuration will continue to work.
*
* @deprecated this property has been deprecated
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-serverlaunchpath
*/
readonly serverLaunchPath?: string;
}
/**
* *This operation is used with the Amazon GameLift FleetIQ solution and game server groups.*.
*
* Creates a GameLift FleetIQ game server group for managing game hosting on a collection of Amazon EC2 instances for game hosting. This operation creates the game server group, creates an Auto Scaling group in your AWS account , and establishes a link between the two groups. You can view the status of your game server groups in the GameLift console. Game server group metrics and events are emitted to Amazon CloudWatch.
*
* Before creating a new game server group, you must have the following:
*
* - An Amazon EC2 launch template that specifies how to launch Amazon EC2 instances with your game server build. For more information, see [Launching an Instance from a Launch Template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide* .
* - An IAM role that extends limited access to your AWS account to allow GameLift FleetIQ to create and interact with the Auto Scaling group. For more information, see [Create IAM roles for cross-service interaction](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg