@aws-cdk/aws-gamelift-alpha 2.59.0-alpha.0 → 2.60.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.59.0",
11
+ "aws-cdk-lib": "^2.60.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3318,7 +3318,7 @@
3318
3318
  },
3319
3319
  "name": "@aws-cdk/aws-gamelift-alpha",
3320
3320
  "readme": {
3321
- "markdown": "# Amazon GameLift Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[Amazon GameLift](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-intro.html) is a service used\nto deploy, operate, and scale dedicated, low-cost servers in the cloud for session-based multiplayer games. Built\non AWS global computing infrastructure, GameLift helps deliver high-performance, high-reliability game servers\nwhile dynamically scaling your resource usage to meet worldwide player demand.\n\nGameLift is composed of three main components:\n\n* GameLift FlexMatch which is a customizable matchmaking service for\nmultiplayer games. With FlexMatch, you can\nbuild a custom set of rules that defines what a multiplayer match looks like\nfor your game, and determines how to\nevaluate and select compatible players for each match. You can also customize\nkey aspects of the matchmaking\nprocess to fit your game, including fine-tuning the matching algorithm.\n\n* GameLift hosting for custom or realtime servers which helps you deploy,\noperate, and scale dedicated game servers. It regulates the resources needed to\nhost games, finds available game servers to host new game sessions, and puts\nplayers into games.\n\n* GameLift FleetIQ to optimize the use of low-cost Amazon Elastic Compute Cloud\n(Amazon EC2) Spot Instances for cloud-based game hosting. With GameLift\nFleetIQ, you can work directly with your hosting resources in Amazon EC2 and\nAmazon EC2 Auto Scaling while taking advantage of GameLift optimizations to\ndeliver inexpensive, resilient game hosting for your players\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. It allows you to define components for your matchmaking\nconfiguration or game server fleet management system.\n\n## GameLift FlexMatch\n\n### Matchmaking RuleSet\n\nEvery FlexMatch matchmaker must have a rule set. The rule set determines the\ntwo key elements of a match: your game's team structure and size, and how to\ngroup players together for the best possible match.\n\nFor example, a rule set might describe a match like this: Create a match with\ntwo teams of four to eight players each, one team is the cowboy and the other\nteam the aliens. A team can have novice and experienced players, but the\naverage skill of the two teams must be within 10 points of each other. If no\nmatch is made after 30 seconds, gradually relax the skill requirements.\n\n```ts\nnew gamelift.MatchmakingRuleSet(this, 'RuleSet', {\n matchmakingRuleSetName: 'my-test-ruleset',\n content: gamelift.RuleSetContent.fromJsonFile(path.join(__dirname, 'my-ruleset/ruleset.json')),\n});\n```\n\n### FlexMatch Monitoring\n\nYou can monitor GameLift FlexMatch activity for matchmaking configurations and\nmatchmaking rules using Amazon CloudWatch. These statistics are used to provide\na historical perspective on how your Gamelift FlexMatch solution is performing.\n\n#### FlexMatch Metrics\n\nGameLift FlexMatch sends metrics to CloudWatch so that you can collect and\nanalyze the activity of your matchmaking solution, including match acceptance\nworkflow, ticket consumtion.\n\nYou can then use CloudWatch alarms to alert you, for example, when matches has\nbeen rejected (potential matches that were rejected by at least one player\nsince the last report) exceed a certain thresold which could means that you may\nhave an issue in your matchmaking rules.\n\nCDK provides methods for accessing GameLift FlexMatch metrics with default configuration,\nsuch as `metricRuleEvaluationsPassed`, or `metricRuleEvaluationsFailed` (see\n[`IMatchmakingRuleSet`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-gamelift.IMatchmakingRuleSet.html)\nfor a full list). CDK also provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift FlexMatch;\nthe configurations are pre-populated with the correct dimensions for the\nmatchmaking configuration.\n\n```ts\ndeclare const matchmakingRuleSet: gamelift.MatchmakingRuleSet;\n// Alarm that triggers when the per-second average of not placed matches exceed 10%\nconst ruleEvaluationRatio = new cloudwatch.MathExpression({\n expression: '1 - (ruleEvaluationsPassed / ruleEvaluationsFailed)',\n usingMetrics: {\n ruleEvaluationsPassed: matchmakingRuleSet.metricRuleEvaluationsPassed({ statistic: cloudwatch.Statistic.SUM }),\n ruleEvaluationsFailed: matchmakingRuleSet.metric('ruleEvaluationsFailed'),\n },\n});\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: ruleEvaluationRatio,\n threshold: 0.1,\n evaluationPeriods: 3,\n});\n```\n\nSee: [Monitoring Using CloudWatch Metrics](https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html)\nin the *Amazon GameLift Developer Guide*.\n\n\n## GameLift Hosting\n\n### Uploading builds and scripts to GameLift\n\nBefore deploying your GameLift-enabled multiplayer game servers for hosting with the GameLift service, you need to upload\nyour game server files. This section provides guidance on preparing and uploading custom game server build\nfiles or Realtime Servers server script files. When you upload files, you create a GameLift build or script resource, which\nyou then deploy on fleets of hosting resources.\n\nTo troubleshoot fleet activation problems related to the server script, see [Debug GameLift fleet issues](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html).\n\n#### Upload a custom server build to GameLift\n\nBefore uploading your configured game server to GameLift for hosting, package the game build files into a build directory.\nThis directory must include all components required to run your game servers and host game sessions, including the following:\n\n* Game server binaries – The binary files required to run the game server. A build can include binaries for multiple game\nservers built to run on the same platform. For a list of supported platforms, see [Download Amazon GameLift SDKs](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-supported.html).\n\n* Dependencies – Any dependent files that your game server executables require to run. Examples include assets, configuration\nfiles, and dependent libraries.\n\n* Install script – A script file to handle tasks that are required to fully install your game build on GameLift hosting\nservers. Place this file at the root of the build directory. GameLift runs the install script as part of fleet creation.\n\nYou can set up any application in your build, including your install script, to access your resources securely on other AWS\nservices.\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst build = new gamelift.Build(this, 'Build', {\n content: gamelift.Content.fromBucket(bucket, \"sample-asset-key\")\n});\n\nnew CfnOutput(this, 'BuildArn', { value: build.buildArn });\nnew CfnOutput(this, 'BuildId', { value: build.buildId });\n```\n\n#### Upload a realtime server Script\n\nYour server script can include one or more files combined into a single .zip file for uploading. The .zip file must contain\nall files that your script needs to run.\n\nYou can store your zipped script files in either a local file directory or in an Amazon Simple Storage Service (Amazon S3)\nbucket or defines a directory asset which is archived as a .zip file and uploaded to S3 during deployment.\n\nAfter you create the script resource, GameLift deploys the script with a new Realtime Servers fleet. GameLift installs your\nserver script onto each instance in the fleet, placing the script files in `/local/game`.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew gamelift.Script(this, 'Script', {\n content: gamelift.Content.fromBucket(bucket, \"sample-asset-key\")\n});\n```\n\n### Defining a GameLift Fleet\n\n#### Creating a custom game server fleet\n\nYour uploaded game servers are hosted on GameLift virtual computing resources,\ncalled instances. You set up your hosting resources by creating a fleet of\ninstances and deploying them to run your game servers. You can design a fleet\nto fit your game's needs.\n\n```ts\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: gamelift.Build.fromAsset(this, 'Build', path.join(__dirname, 'CustomerGameServer')),\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: 'test-launch-path',\n }],\n },\n});\n```\n\n### Managing game servers launch configuration\n\nGameLift uses a fleet's runtime configuration to determine the type and number\nof processes to run on each instance in the fleet. At a minimum, a runtime\nconfiguration contains one server process configuration that represents one\ngame server executable. You can also define additional server process\nconfigurations to run other types of processes related to your game. Each\nserver process configuration contains the following information:\n\n* The file name and path of an executable in your game build.\n\n* Optionally Parameters to pass to the process on launch.\n\n* The number of processes to run concurrently.\n\nA GameLift instance is limited to 50 processes running concurrently.\n\n```ts\ndeclare const build: gamelift.Build;\n// Server processes can be delcared in a declarative way through the constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n parameters: '-logFile /local/game/logs/myserver1935.log -port 1935',\n concurrentExecutions: 100,\n }]\n }\n});\n```\n\nSee [Managing how game servers are launched for hosting](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html)\nin the *Amazon GameLift Developer Guide*.\n\n### Defining an instance type\n\nGameLift uses Amazon Elastic Compute Cloud (Amazon EC2) resources, called\ninstances, to deploy your game servers and host game sessions for your players.\nWhen setting up a new fleet, you decide what type of instances your game needs\nand how to run game server processes on them (using a runtime configuration). All instances in a fleet use the same type of resources and the same runtime\nconfiguration. You can edit a fleet's runtime configuration and other fleet\nproperties, but the type of resources cannot be changed.\n\n```ts\ndeclare const build: gamelift.Build;\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n }\n});\n```\n\n### Using Spot instances\n\nWhen setting up your hosting resources, you have the option of using Spot\nInstances, On-Demand Instances, or a combination.\n\nBy default, fleet are using on demand capacity.\n\n```ts\ndeclare const build: gamelift.Build;\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n useSpot: true\n});\n```\n\n### Allowing Ingress traffic\n\nThe allowed IP address ranges and port settings that allow inbound traffic to\naccess game sessions on this fleet.\n\nNew game sessions are assigned an IP address/port number combination, which\nmust fall into the fleet's allowed ranges. Fleets with custom game builds must\nhave permissions explicitly set. For Realtime Servers fleets, GameLift\nautomatically opens two port ranges, one for TCP messaging and one for UDP.\n\n```ts\ndeclare const build: gamelift.Build;\n\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n ingressRules: [{\n source: gamelift.Peer.anyIpv4(),\n port: gamelift.Port.tcpRange(100, 200),\n }]\n});\n// Allowing a specific CIDR for port 1111 on UDP Protocol\nfleet.addIngressRule(gamelift.Peer.ipv4('1.2.3.4/32'), gamelift.Port.udp(1111));\n```\n\n### Managing locations\n\nA single Amazon GameLift fleet has a home Region by default (the Region you\ndeploy it to), but it can deploy resources to any number of GameLift supported\nRegions. Select Regions based on where your players are located and your\nlatency needs.\n\nBy default, home region is used as default location but we can add new locations if needed and define desired capacity\n\n```ts\ndeclare const build: gamelift.Build;\n\n// Locations can be added directly through constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n locations: [ {\n region: 'eu-west-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }, {\n region: 'us-east-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }]\n});\n\n// Or through dedicated methods\nfleet.addLocation('ap-southeast-1', 5, 2, 10);\n```\n\n### Specifying an IAM role for a Fleet\n\nSome GameLift features require you to extend limited access to your AWS\nresources. This is done by creating an AWS IAM role. The GameLift Fleet class\nautomatically created an IAM role with all the minimum necessary permissions\nfor GameLift to access your resources. If you wish, you may\nspecify your own IAM role.\n\n```ts\ndeclare const build: gamelift.Build;\nconst role = new iam.Role(this, 'Role', {\n assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal('gamelift.amazonaws.com'))\n});\nrole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('CloudWatchAgentServerPolicy'));\n\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n role: role\n});\n\n// Actions can also be grantted through dedicated method\nfleet.grant(role, 'gamelift:ListFleets');\n```\n\n### Alias\n\nA GameLift alias is used to abstract a fleet designation. Fleet designations\ntell Amazon GameLift where to search for available resources when creating new\ngame sessions for players. By using aliases instead of specific fleet IDs, you\ncan more easily and seamlessly switch player traffic from one fleet to another\nby changing the alias's target location.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\n\n// Add an alias to an existing fleet using a dedicated fleet method\nconst liveAlias = fleet.addAlias('live');\n\n// You can also create a standalone alias\nnew gamelift.Alias(this, 'TerminalAlias', {\n aliasName: 'terminal-alias',\n terminalMessage: 'A terminal message',\n});\n```\n\nSee [Add an alias to a GameLift fleet](https://docs.aws.amazon.com/gamelift/latest/developerguide/aliases-creating.html)\nin the *Amazon GameLift Developer Guide*.\n\n### Monitoring your Fleet\n\nGameLift is integrated with CloudWatch, so you can monitor the performance of\nyour game servers via logs and metrics.\n\n#### Fleet Metrics\n\nGameLift Fleet sends metrics to CloudWatch so that you can collect and analyze\nthe activity of your Fleet, including game and player sessions and server\nprocesses.\n\nYou can then use CloudWatch alarms to alert you, for example, when matches has\nbeen rejected (potential matches that were rejected by at least one player\nsince the last report) exceed a certain threshold which could means that you may\nhave an issue in your matchmaking rules.\n\nCDK provides methods for accessing GameLift Fleet metrics with default configuration,\nsuch as `metricActiveInstances`, or `metricIdleInstances` (see [`IFleet`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-gamelift.IFleet.html)\nfor a full list). CDK also provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift Fleet,\nGame sessions or server processes; the configurations are pre-populated with\nthe correct dimensions for the matchmaking configuration.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\n// Alarm that triggers when the per-second average of not used instances exceed 10%\nconst instancesUsedRatio = new cloudwatch.MathExpression({\n expression: '1 - (activeInstances / idleInstances)',\n usingMetrics: {\n activeInstances: fleet.metric('ActiveInstances', { statistic: cloudwatch.Statistic.SUM }),\n idleInstances: fleet.metricIdleInstances(),\n },\n});\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: instancesUsedRatio,\n threshold: 0.1,\n evaluationPeriods: 3,\n});\n```\n\nSee: [Monitoring Using CloudWatch Metrics](https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html)\nin the *Amazon GameLift Developer Guide*.\n\n## Game session queue\n\nThe game session queue is the primary mechanism for processing new game session\nrequests and locating available game servers to host them. Although it is\npossible to request a new game session be hosted on specific fleet or location.\n\nThe `GameSessionQueue` resource creates a placement queue that processes requests for\nnew game sessions. A queue uses FleetIQ algorithms to determine the best placement\nlocations and find an available game server, then prompts the game server to start a\nnew game session. Queues can have destinations (GameLift fleets or aliases), which\ndetermine where the queue can place new game sessions. A queue can have destinations\nwith varied fleet type (Spot and On-Demand), instance type, and AWS Region.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\ndeclare const alias: gamelift.Alias;\n\nconst queue = new gamelift.GameSessionQueue(this, 'GameSessionQueue', {\n gameSessionQueueName: 'my-queue-name',\n destinations: [fleet]\n});\nqueue.addDestination(alias);\n```\n\nA more complex configuration can also be definied to override how FleetIQ algorithms prioritize game session placement in order to favour a destination based on `Cost`, `Latency`, `Destination order`or `Location`.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\ndeclare const topic: sns.Topic;\n\nnew gamelift.GameSessionQueue(this, 'MyGameSessionQueue', {\n gameSessionQueueName: 'test-gameSessionQueue',\n customEventData: 'test-event-data',\n allowedLocations: ['eu-west-1', 'eu-west-2'],\n destinations: [fleet],\n notificationTarget: topic,\n playerLatencyPolicies: [{\n maximumIndividualPlayerLatency: Duration.millis(100),\n policyDuration: Duration.seconds(300),\n }],\n priorityConfiguration: {\n locationOrder: [\n 'eu-west-1',\n 'eu-west-2',\n ],\n priorityOrder: [\n gamelift.PriorityType.LATENCY,\n gamelift.PriorityType.COST,\n gamelift.PriorityType.DESTINATION,\n gamelift.PriorityType.LOCATION,\n ],\n },\n timeout: Duration.seconds(300),\n });\n```\n\nSee [Setting up GameLift queues for game session placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-script-uploading.html)\nin the *Amazon GameLift Developer Guide*.\n\n## GameLift FleetIQ\n\nThe GameLift FleetIQ solution is a game hosting layer that supplements the full\nset of computing resource management tools that you get with Amazon EC2 and\nAuto Scaling. This solution lets you directly manage your Amazon EC2 and Auto\nScaling resources and integrate as needed with other AWS services.\n\n### Defining a Game Server Group\n\nWhen using GameLift FleetIQ, you prepare to launch Amazon EC2 instances as\nusual: make an Amazon Machine Image (AMI) with your game server software,\ncreate an Amazon EC2 launch template, and define configuration settings for an\nAuto Scaling group. However, instead of creating an Auto Scaling group\ndirectly, you create a GameLift FleetIQ game server group with your Amazon EC2\nand Auto Scaling resources and configuration. All game server groups must have\nat least two instance types defined for it.\n\nOnce a game server group and Auto Scaling group are up and running with\ninstances deployed, when updating a Game Server Group instance, only certain\nproperties in the Auto Scaling group may be overwrite. For all other Auto\nScaling group properties, such as MinSize, MaxSize, and LaunchTemplate, you can\nmodify these directly on the Auto Scaling group using the AWS Console or\ndedicated Api.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc\n});\n```\n\nSee [Manage game server groups](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-integrate-gameservergroup.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Scaling Policy\n\nThe scaling policy uses the metric `PercentUtilizedGameServers` to maintain a\nbuffer of idle game servers that can immediately accommodate new games and\nplayers.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n autoScalingPolicy: {\n estimatedInstanceWarmup: Duration.minutes(5),\n targetTrackingConfiguration: 5\n }\n});\n```\n\nSee [Manage game server groups](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-integrate-gameservergroup.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Specifying an IAM role for GameLift\n\nThe GameLift FleetIQ class automatically creates an IAM role with all the minimum necessary\npermissions for GameLift to access your Amazon EC2 Auto Scaling groups. If you wish, you may\nspecify your own IAM role. It must have the correct permissions, or FleetIQ creation or resource usage may fail.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nconst role = new iam.Role(this, 'Role', {\n assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal('gamelift.amazonaws.com'),\n new iam.ServicePrincipal('autoscaling.amazonaws.com'))\n});\nrole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('GameLiftGameServerGroupPolicy'));\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n role: role\n});\n```\n\nSee [Controlling Access](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-iam-permissions-roles.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Specifying VPC Subnets\n\nGameLift FleetIQ use by default, all supported GameLift FleetIQ Availability\nZones in your chosen region. You can override this parameter to specify VPCs\nsubnets that you've set up.\n\nThis property cannot be updated after the game server group is created, and the\ncorresponding Auto Scaling group will always use the property value that is set\nwith this request, even if the Auto Scaling group is updated directly.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'GameServerGroup', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC }\n});\n```\n\n### FleetIQ Monitoring\n\nGameLift FleetIQ sends metrics to CloudWatch so that you can collect and\nanalyze the activity of your Game server fleet, including the number of\nutilized game servers, and the number of game server interruption due to\nlimited Spot availability.\n\nYou can then use CloudWatch alarms to alert you, for example, when the portion\nof game servers that are currently supporting game executions exceed a certain\nthreshold which could means that your autoscaling policy need to be adjust to\nadd more instances to match with player demand.\n\nCDK provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift FleetIQ;\nthe configurations are pre-populated with the correct dimensions for the\nmatchmaking configuration.\n\n```ts\ndeclare const gameServerGroup: gamelift.IGameServerGroup;\n// Alarm that triggers when the percent of utilized game servers exceed 90%\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: gameServerGroup.metric('UtilizedGameServers'),\n threshold: 0.9,\n evaluationPeriods: 2,\n});\n```\n\nSee: [Monitoring with CloudWatch](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-metrics.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n"
3321
+ "markdown": "# Amazon GameLift Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[Amazon GameLift](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-intro.html) is a service used\nto deploy, operate, and scale dedicated, low-cost servers in the cloud for session-based multiplayer games. Built\non AWS global computing infrastructure, GameLift helps deliver high-performance, high-reliability game servers\nwhile dynamically scaling your resource usage to meet worldwide player demand.\n\nGameLift is composed of three main components:\n\n* GameLift FlexMatch which is a customizable matchmaking service for\nmultiplayer games. With FlexMatch, you can\nbuild a custom set of rules that defines what a multiplayer match looks like\nfor your game, and determines how to\nevaluate and select compatible players for each match. You can also customize\nkey aspects of the matchmaking\nprocess to fit your game, including fine-tuning the matching algorithm.\n\n* GameLift hosting for custom or realtime servers which helps you deploy,\noperate, and scale dedicated game servers. It regulates the resources needed to\nhost games, finds available game servers to host new game sessions, and puts\nplayers into games.\n\n* GameLift FleetIQ to optimize the use of low-cost Amazon Elastic Compute Cloud\n(Amazon EC2) Spot Instances for cloud-based game hosting. With GameLift\nFleetIQ, you can work directly with your hosting resources in Amazon EC2 and\nAmazon EC2 Auto Scaling while taking advantage of GameLift optimizations to\ndeliver inexpensive, resilient game hosting for your players\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. It allows you to define components for your matchmaking\nconfiguration or game server fleet management system.\n\n## GameLift FlexMatch\n\n### Defining a Matchmaking configuration\n\nFlexMatch is available both as a GameLift game hosting solution (including\nRealtime Servers) and as a standalone matchmaking service. To set up a\nFlexMatch matchmaker to process matchmaking requests, you have to create a\nmatchmaking configuration based on a RuleSet.\n\nMore details about matchmaking ruleSet are covered [below](#matchmaking-ruleset).\n\nThere is two types of Matchmaking configuration:\n\nThrough a game session queue system to let FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.\n\n```ts\ndeclare const queue: gamelift.GameSessionQueue;\ndeclare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.QueuedMatchmakingConfiguration(this, 'QueuedMatchmakingConfiguration', {\n matchmakingConfigurationName: 'test-queued-config-name',\n gameSessionQueues: [queue],\n ruleSet: ruleSet,\n});\n```\n\nOr through a standalone version to let FlexMatch forms matches and returns match information in an event.\n\n```ts\ndeclare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.StandaloneMatchmakingConfiguration(this, 'StandaloneMatchmaking', {\n matchmakingConfigurationName: 'test-standalone-config-name',\n ruleSet: ruleSet,\n});\n```\n\n\nMore details about Game session queue are covered [below](#game-session-queue).\n\n### Matchmaking RuleSet\n\nEvery FlexMatch matchmaker must have a rule set. The rule set determines the\ntwo key elements of a match: your game's team structure and size, and how to\ngroup players together for the best possible match.\n\nFor example, a rule set might describe a match like this: Create a match with\ntwo teams of four to eight players each, one team is the cowboy and the other\nteam the aliens. A team can have novice and experienced players, but the\naverage skill of the two teams must be within 10 points of each other. If no\nmatch is made after 30 seconds, gradually relax the skill requirements.\n\n```ts\nnew gamelift.MatchmakingRuleSet(this, 'RuleSet', {\n matchmakingRuleSetName: 'my-test-ruleset',\n content: gamelift.RuleSetContent.fromJsonFile(path.join(__dirname, 'my-ruleset/ruleset.json')),\n});\n```\n\n### FlexMatch Monitoring\n\nYou can monitor GameLift FlexMatch activity for matchmaking configurations and\nmatchmaking rules using Amazon CloudWatch. These statistics are used to provide\na historical perspective on how your Gamelift FlexMatch solution is performing.\n\n#### FlexMatch Metrics\n\nGameLift FlexMatch sends metrics to CloudWatch so that you can collect and\nanalyze the activity of your matchmaking solution, including match acceptance\nworkflow, ticket consumtion.\n\nYou can then use CloudWatch alarms to alert you, for example, when matches has\nbeen rejected (potential matches that were rejected by at least one player\nsince the last report) exceed a certain thresold which could means that you may\nhave an issue in your matchmaking rules.\n\nCDK provides methods for accessing GameLift FlexMatch metrics with default configuration,\nsuch as `metricRuleEvaluationsPassed`, or `metricRuleEvaluationsFailed` (see\n[`IMatchmakingRuleSet`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-gamelift.IMatchmakingRuleSet.html)\nfor a full list). CDK also provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift FlexMatch;\nthe configurations are pre-populated with the correct dimensions for the\nmatchmaking configuration.\n\n```ts\ndeclare const matchmakingRuleSet: gamelift.MatchmakingRuleSet;\n// Alarm that triggers when the per-second average of not placed matches exceed 10%\nconst ruleEvaluationRatio = new cloudwatch.MathExpression({\n expression: '1 - (ruleEvaluationsPassed / ruleEvaluationsFailed)',\n usingMetrics: {\n ruleEvaluationsPassed: matchmakingRuleSet.metricRuleEvaluationsPassed({ statistic: cloudwatch.Statistic.SUM }),\n ruleEvaluationsFailed: matchmakingRuleSet.metric('ruleEvaluationsFailed'),\n },\n});\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: ruleEvaluationRatio,\n threshold: 0.1,\n evaluationPeriods: 3,\n});\n```\n\nSee: [Monitoring Using CloudWatch Metrics](https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html)\nin the *Amazon GameLift Developer Guide*.\n\n\n## GameLift Hosting\n\n### Uploading builds and scripts to GameLift\n\nBefore deploying your GameLift-enabled multiplayer game servers for hosting with the GameLift service, you need to upload\nyour game server files. This section provides guidance on preparing and uploading custom game server build\nfiles or Realtime Servers server script files. When you upload files, you create a GameLift build or script resource, which\nyou then deploy on fleets of hosting resources.\n\nTo troubleshoot fleet activation problems related to the server script, see [Debug GameLift fleet issues](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html).\n\n#### Upload a custom server build to GameLift\n\nBefore uploading your configured game server to GameLift for hosting, package the game build files into a build directory.\nThis directory must include all components required to run your game servers and host game sessions, including the following:\n\n* Game server binaries – The binary files required to run the game server. A build can include binaries for multiple game\nservers built to run on the same platform. For a list of supported platforms, see [Download Amazon GameLift SDKs](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-supported.html).\n\n* Dependencies – Any dependent files that your game server executables require to run. Examples include assets, configuration\nfiles, and dependent libraries.\n\n* Install script – A script file to handle tasks that are required to fully install your game build on GameLift hosting\nservers. Place this file at the root of the build directory. GameLift runs the install script as part of fleet creation.\n\nYou can set up any application in your build, including your install script, to access your resources securely on other AWS\nservices.\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst build = new gamelift.Build(this, 'Build', {\n content: gamelift.Content.fromBucket(bucket, \"sample-asset-key\")\n});\n\nnew CfnOutput(this, 'BuildArn', { value: build.buildArn });\nnew CfnOutput(this, 'BuildId', { value: build.buildId });\n```\n\n#### Upload a realtime server Script\n\nYour server script can include one or more files combined into a single .zip file for uploading. The .zip file must contain\nall files that your script needs to run.\n\nYou can store your zipped script files in either a local file directory or in an Amazon Simple Storage Service (Amazon S3)\nbucket or defines a directory asset which is archived as a .zip file and uploaded to S3 during deployment.\n\nAfter you create the script resource, GameLift deploys the script with a new Realtime Servers fleet. GameLift installs your\nserver script onto each instance in the fleet, placing the script files in `/local/game`.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew gamelift.Script(this, 'Script', {\n content: gamelift.Content.fromBucket(bucket, \"sample-asset-key\")\n});\n```\n\n### Defining a GameLift Fleet\n\n#### Creating a custom game server fleet\n\nYour uploaded game servers are hosted on GameLift virtual computing resources,\ncalled instances. You set up your hosting resources by creating a fleet of\ninstances and deploying them to run your game servers. You can design a fleet\nto fit your game's needs.\n\n```ts\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: gamelift.Build.fromAsset(this, 'Build', path.join(__dirname, 'CustomerGameServer')),\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: 'test-launch-path',\n }],\n },\n});\n```\n\n### Managing game servers launch configuration\n\nGameLift uses a fleet's runtime configuration to determine the type and number\nof processes to run on each instance in the fleet. At a minimum, a runtime\nconfiguration contains one server process configuration that represents one\ngame server executable. You can also define additional server process\nconfigurations to run other types of processes related to your game. Each\nserver process configuration contains the following information:\n\n* The file name and path of an executable in your game build.\n\n* Optionally Parameters to pass to the process on launch.\n\n* The number of processes to run concurrently.\n\nA GameLift instance is limited to 50 processes running concurrently.\n\n```ts\ndeclare const build: gamelift.Build;\n// Server processes can be delcared in a declarative way through the constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n parameters: '-logFile /local/game/logs/myserver1935.log -port 1935',\n concurrentExecutions: 100,\n }]\n }\n});\n```\n\nSee [Managing how game servers are launched for hosting](https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html)\nin the *Amazon GameLift Developer Guide*.\n\n### Defining an instance type\n\nGameLift uses Amazon Elastic Compute Cloud (Amazon EC2) resources, called\ninstances, to deploy your game servers and host game sessions for your players.\nWhen setting up a new fleet, you decide what type of instances your game needs\nand how to run game server processes on them (using a runtime configuration). All instances in a fleet use the same type of resources and the same runtime\nconfiguration. You can edit a fleet's runtime configuration and other fleet\nproperties, but the type of resources cannot be changed.\n\n```ts\ndeclare const build: gamelift.Build;\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n }\n});\n```\n\n### Using Spot instances\n\nWhen setting up your hosting resources, you have the option of using Spot\nInstances, On-Demand Instances, or a combination.\n\nBy default, fleet are using on demand capacity.\n\n```ts\ndeclare const build: gamelift.Build;\nnew gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n useSpot: true\n});\n```\n\n### Allowing Ingress traffic\n\nThe allowed IP address ranges and port settings that allow inbound traffic to\naccess game sessions on this fleet.\n\nNew game sessions are assigned an IP address/port number combination, which\nmust fall into the fleet's allowed ranges. Fleets with custom game builds must\nhave permissions explicitly set. For Realtime Servers fleets, GameLift\nautomatically opens two port ranges, one for TCP messaging and one for UDP.\n\n```ts\ndeclare const build: gamelift.Build;\n\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n ingressRules: [{\n source: gamelift.Peer.anyIpv4(),\n port: gamelift.Port.tcpRange(100, 200),\n }]\n});\n// Allowing a specific CIDR for port 1111 on UDP Protocol\nfleet.addIngressRule(gamelift.Peer.ipv4('1.2.3.4/32'), gamelift.Port.udp(1111));\n```\n\n### Managing locations\n\nA single Amazon GameLift fleet has a home Region by default (the Region you\ndeploy it to), but it can deploy resources to any number of GameLift supported\nRegions. Select Regions based on where your players are located and your\nlatency needs.\n\nBy default, home region is used as default location but we can add new locations if needed and define desired capacity\n\n```ts\ndeclare const build: gamelift.Build;\n\n// Locations can be added directly through constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n locations: [ {\n region: 'eu-west-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }, {\n region: 'us-east-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }]\n});\n\n// Or through dedicated methods\nfleet.addLocation('ap-southeast-1', 5, 2, 10);\n```\n\n### Specifying an IAM role for a Fleet\n\nSome GameLift features require you to extend limited access to your AWS\nresources. This is done by creating an AWS IAM role. The GameLift Fleet class\nautomatically created an IAM role with all the minimum necessary permissions\nfor GameLift to access your resources. If you wish, you may\nspecify your own IAM role.\n\n```ts\ndeclare const build: gamelift.Build;\nconst role = new iam.Role(this, 'Role', {\n assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal('gamelift.amazonaws.com'))\n});\nrole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('CloudWatchAgentServerPolicy'));\n\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n role: role\n});\n\n// Actions can also be grantted through dedicated method\nfleet.grant(role, 'gamelift:ListFleets');\n```\n\n### Alias\n\nA GameLift alias is used to abstract a fleet designation. Fleet designations\ntell Amazon GameLift where to search for available resources when creating new\ngame sessions for players. By using aliases instead of specific fleet IDs, you\ncan more easily and seamlessly switch player traffic from one fleet to another\nby changing the alias's target location.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\n\n// Add an alias to an existing fleet using a dedicated fleet method\nconst liveAlias = fleet.addAlias('live');\n\n// You can also create a standalone alias\nnew gamelift.Alias(this, 'TerminalAlias', {\n aliasName: 'terminal-alias',\n terminalMessage: 'A terminal message',\n});\n```\n\nSee [Add an alias to a GameLift fleet](https://docs.aws.amazon.com/gamelift/latest/developerguide/aliases-creating.html)\nin the *Amazon GameLift Developer Guide*.\n\n### Monitoring your Fleet\n\nGameLift is integrated with CloudWatch, so you can monitor the performance of\nyour game servers via logs and metrics.\n\n#### Fleet Metrics\n\nGameLift Fleet sends metrics to CloudWatch so that you can collect and analyze\nthe activity of your Fleet, including game and player sessions and server\nprocesses.\n\nYou can then use CloudWatch alarms to alert you, for example, when matches has\nbeen rejected (potential matches that were rejected by at least one player\nsince the last report) exceed a certain threshold which could means that you may\nhave an issue in your matchmaking rules.\n\nCDK provides methods for accessing GameLift Fleet metrics with default configuration,\nsuch as `metricActiveInstances`, or `metricIdleInstances` (see [`IFleet`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-gamelift.IFleet.html)\nfor a full list). CDK also provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift Fleet,\nGame sessions or server processes; the configurations are pre-populated with\nthe correct dimensions for the matchmaking configuration.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\n// Alarm that triggers when the per-second average of not used instances exceed 10%\nconst instancesUsedRatio = new cloudwatch.MathExpression({\n expression: '1 - (activeInstances / idleInstances)',\n usingMetrics: {\n activeInstances: fleet.metric('ActiveInstances', { statistic: cloudwatch.Statistic.SUM }),\n idleInstances: fleet.metricIdleInstances(),\n },\n});\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: instancesUsedRatio,\n threshold: 0.1,\n evaluationPeriods: 3,\n});\n```\n\nSee: [Monitoring Using CloudWatch Metrics](https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html)\nin the *Amazon GameLift Developer Guide*.\n\n## Game session queue\n\nThe game session queue is the primary mechanism for processing new game session\nrequests and locating available game servers to host them. Although it is\npossible to request a new game session be hosted on specific fleet or location.\n\nThe `GameSessionQueue` resource creates a placement queue that processes requests for\nnew game sessions. A queue uses FleetIQ algorithms to determine the best placement\nlocations and find an available game server, then prompts the game server to start a\nnew game session. Queues can have destinations (GameLift fleets or aliases), which\ndetermine where the queue can place new game sessions. A queue can have destinations\nwith varied fleet type (Spot and On-Demand), instance type, and AWS Region.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\ndeclare const alias: gamelift.Alias;\n\nconst queue = new gamelift.GameSessionQueue(this, 'GameSessionQueue', {\n gameSessionQueueName: 'my-queue-name',\n destinations: [fleet]\n});\nqueue.addDestination(alias);\n```\n\nA more complex configuration can also be definied to override how FleetIQ algorithms prioritize game session placement in order to favour a destination based on `Cost`, `Latency`, `Destination order`or `Location`.\n\n```ts\ndeclare const fleet: gamelift.BuildFleet;\ndeclare const topic: sns.Topic;\n\nnew gamelift.GameSessionQueue(this, 'MyGameSessionQueue', {\n gameSessionQueueName: 'test-gameSessionQueue',\n customEventData: 'test-event-data',\n allowedLocations: ['eu-west-1', 'eu-west-2'],\n destinations: [fleet],\n notificationTarget: topic,\n playerLatencyPolicies: [{\n maximumIndividualPlayerLatency: Duration.millis(100),\n policyDuration: Duration.seconds(300),\n }],\n priorityConfiguration: {\n locationOrder: [\n 'eu-west-1',\n 'eu-west-2',\n ],\n priorityOrder: [\n gamelift.PriorityType.LATENCY,\n gamelift.PriorityType.COST,\n gamelift.PriorityType.DESTINATION,\n gamelift.PriorityType.LOCATION,\n ],\n },\n timeout: Duration.seconds(300),\n });\n```\n\nSee [Setting up GameLift queues for game session placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-script-uploading.html)\nin the *Amazon GameLift Developer Guide*.\n\n## GameLift FleetIQ\n\nThe GameLift FleetIQ solution is a game hosting layer that supplements the full\nset of computing resource management tools that you get with Amazon EC2 and\nAuto Scaling. This solution lets you directly manage your Amazon EC2 and Auto\nScaling resources and integrate as needed with other AWS services.\n\n### Defining a Game Server Group\n\nWhen using GameLift FleetIQ, you prepare to launch Amazon EC2 instances as\nusual: make an Amazon Machine Image (AMI) with your game server software,\ncreate an Amazon EC2 launch template, and define configuration settings for an\nAuto Scaling group. However, instead of creating an Auto Scaling group\ndirectly, you create a GameLift FleetIQ game server group with your Amazon EC2\nand Auto Scaling resources and configuration. All game server groups must have\nat least two instance types defined for it.\n\nOnce a game server group and Auto Scaling group are up and running with\ninstances deployed, when updating a Game Server Group instance, only certain\nproperties in the Auto Scaling group may be overwrite. For all other Auto\nScaling group properties, such as MinSize, MaxSize, and LaunchTemplate, you can\nmodify these directly on the Auto Scaling group using the AWS Console or\ndedicated Api.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc\n});\n```\n\nSee [Manage game server groups](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-integrate-gameservergroup.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Scaling Policy\n\nThe scaling policy uses the metric `PercentUtilizedGameServers` to maintain a\nbuffer of idle game servers that can immediately accommodate new games and\nplayers.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n autoScalingPolicy: {\n estimatedInstanceWarmup: Duration.minutes(5),\n targetTrackingConfiguration: 5\n }\n});\n```\n\nSee [Manage game server groups](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-integrate-gameservergroup.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Specifying an IAM role for GameLift\n\nThe GameLift FleetIQ class automatically creates an IAM role with all the minimum necessary\npermissions for GameLift to access your Amazon EC2 Auto Scaling groups. If you wish, you may\nspecify your own IAM role. It must have the correct permissions, or FleetIQ creation or resource usage may fail.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nconst role = new iam.Role(this, 'Role', {\n assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal('gamelift.amazonaws.com'),\n new iam.ServicePrincipal('autoscaling.amazonaws.com'))\n});\nrole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('GameLiftGameServerGroupPolicy'));\n\nnew gamelift.GameServerGroup(this, 'Game server group', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n role: role\n});\n```\n\nSee [Controlling Access](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-iam-permissions-roles.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n\n### Specifying VPC Subnets\n\nGameLift FleetIQ use by default, all supported GameLift FleetIQ Availability\nZones in your chosen region. You can override this parameter to specify VPCs\nsubnets that you've set up.\n\nThis property cannot be updated after the game server group is created, and the\ncorresponding Auto Scaling group will always use the property value that is set\nwith this request, even if the Auto Scaling group is updated directly.\n\n```ts\ndeclare const launchTemplate: ec2.ILaunchTemplate;\ndeclare const vpc: ec2.IVpc;\n\nnew gamelift.GameServerGroup(this, 'GameServerGroup', {\n gameServerGroupName: 'sample-gameservergroup-name',\n instanceDefinitions: [{\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.LARGE),\n },\n {\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n }],\n launchTemplate: launchTemplate,\n vpc: vpc,\n vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC }\n});\n```\n\n### FleetIQ Monitoring\n\nGameLift FleetIQ sends metrics to CloudWatch so that you can collect and\nanalyze the activity of your Game server fleet, including the number of\nutilized game servers, and the number of game server interruption due to\nlimited Spot availability.\n\nYou can then use CloudWatch alarms to alert you, for example, when the portion\nof game servers that are currently supporting game executions exceed a certain\nthreshold which could means that your autoscaling policy need to be adjust to\nadd more instances to match with player demand.\n\nCDK provides a generic `metric` method that can be used\nto produce metric configurations for any metric provided by GameLift FleetIQ;\nthe configurations are pre-populated with the correct dimensions for the\nmatchmaking configuration.\n\n```ts\ndeclare const gameServerGroup: gamelift.IGameServerGroup;\n// Alarm that triggers when the percent of utilized game servers exceed 90%\nnew cloudwatch.Alarm(this, 'Alarm', {\n metric: gameServerGroup.metric('UtilizedGameServers'),\n threshold: 0.9,\n evaluationPeriods: 2,\n});\n```\n\nSee: [Monitoring with CloudWatch](https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-metrics.html)\nin the *Amazon GameLift FleetIQ Developer Guide*.\n"
3322
3322
  },
3323
3323
  "repository": {
3324
3324
  "directory": "packages/individual-packages/aws-gamelift",
@@ -6226,6 +6226,62 @@
6226
6226
  ],
6227
6227
  "symbolId": "lib/fleet-base:FleetProps"
6228
6228
  },
6229
+ "@aws-cdk/aws-gamelift-alpha.GameProperty": {
6230
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
6231
+ "datatype": true,
6232
+ "docs": {
6233
+ "remarks": "These properties are passed to a game server process with a request to start a new game session.\n\nThis parameter is not used for Standalone FlexMatch mode.",
6234
+ "see": "https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession",
6235
+ "stability": "experimental",
6236
+ "summary": "A set of custom properties for a game session, formatted as key-value pairs.",
6237
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nconst gameProperty: gamelift_alpha.GameProperty = {\n key: 'key',\n value: 'value',\n};",
6238
+ "custom": {
6239
+ "exampleMetadata": "fixture=_generated"
6240
+ }
6241
+ },
6242
+ "fqn": "@aws-cdk/aws-gamelift-alpha.GameProperty",
6243
+ "kind": "interface",
6244
+ "locationInModule": {
6245
+ "filename": "lib/matchmaking-configuration.ts",
6246
+ "line": 15
6247
+ },
6248
+ "name": "GameProperty",
6249
+ "properties": [
6250
+ {
6251
+ "abstract": true,
6252
+ "docs": {
6253
+ "stability": "experimental",
6254
+ "summary": "The game property identifier."
6255
+ },
6256
+ "immutable": true,
6257
+ "locationInModule": {
6258
+ "filename": "lib/matchmaking-configuration.ts",
6259
+ "line": 19
6260
+ },
6261
+ "name": "key",
6262
+ "type": {
6263
+ "primitive": "string"
6264
+ }
6265
+ },
6266
+ {
6267
+ "abstract": true,
6268
+ "docs": {
6269
+ "stability": "experimental",
6270
+ "summary": "The game property value."
6271
+ },
6272
+ "immutable": true,
6273
+ "locationInModule": {
6274
+ "filename": "lib/matchmaking-configuration.ts",
6275
+ "line": 23
6276
+ },
6277
+ "name": "value",
6278
+ "type": {
6279
+ "primitive": "string"
6280
+ }
6281
+ }
6282
+ ],
6283
+ "symbolId": "lib/matchmaking-configuration:GameProperty"
6284
+ },
6229
6285
  "@aws-cdk/aws-gamelift-alpha.GameServerGroup": {
6230
6286
  "assembly": "@aws-cdk/aws-gamelift-alpha",
6231
6287
  "base": "@aws-cdk/aws-gamelift-alpha.GameServerGroupBase",
@@ -8733,31 +8789,31 @@
8733
8789
  ],
8734
8790
  "symbolId": "lib/game-session-queue:IGameSessionQueueDestination"
8735
8791
  },
8736
- "@aws-cdk/aws-gamelift-alpha.IMatchmakingRuleSet": {
8792
+ "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration": {
8737
8793
  "assembly": "@aws-cdk/aws-gamelift-alpha",
8738
8794
  "docs": {
8739
8795
  "stability": "experimental",
8740
- "summary": "Represents a Gamelift matchmaking ruleset."
8796
+ "summary": "Represents a Gamelift matchmaking configuration."
8741
8797
  },
8742
- "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingRuleSet",
8798
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
8743
8799
  "interfaces": [
8744
8800
  "aws-cdk-lib.IResource"
8745
8801
  ],
8746
8802
  "kind": "interface",
8747
8803
  "locationInModule": {
8748
- "filename": "lib/matchmaking-ruleset.ts",
8749
- "line": 11
8804
+ "filename": "lib/matchmaking-configuration.ts",
8805
+ "line": 29
8750
8806
  },
8751
8807
  "methods": [
8752
8808
  {
8753
8809
  "abstract": true,
8754
8810
  "docs": {
8755
8811
  "stability": "experimental",
8756
- "summary": "Return the given named metric for this matchmaking ruleSet."
8812
+ "summary": "Return the given named metric for this matchmaking configuration."
8757
8813
  },
8758
8814
  "locationInModule": {
8759
- "filename": "lib/matchmaking-ruleset.ts",
8760
- "line": 29
8815
+ "filename": "lib/matchmaking-configuration.ts",
8816
+ "line": 55
8761
8817
  },
8762
8818
  "name": "metric",
8763
8819
  "parameters": [
@@ -8784,15 +8840,14 @@
8784
8840
  {
8785
8841
  "abstract": true,
8786
8842
  "docs": {
8787
- "remarks": "This metric is limited to the top 50 rules.",
8788
8843
  "stability": "experimental",
8789
- "summary": "Rule evaluations during matchmaking that failed since the last report."
8844
+ "summary": "Matchmaking requests currently being processed or waiting to be processed."
8790
8845
  },
8791
8846
  "locationInModule": {
8792
- "filename": "lib/matchmaking-ruleset.ts",
8793
- "line": 44
8847
+ "filename": "lib/matchmaking-configuration.ts",
8848
+ "line": 60
8794
8849
  },
8795
- "name": "metricRuleEvaluationsFailed",
8850
+ "name": "metricCurrentTickets",
8796
8851
  "parameters": [
8797
8852
  {
8798
8853
  "name": "props",
@@ -8811,15 +8866,14 @@
8811
8866
  {
8812
8867
  "abstract": true,
8813
8868
  "docs": {
8814
- "remarks": "This metric is limited to the top 50 rules.",
8815
8869
  "stability": "experimental",
8816
- "summary": "Rule evaluations during the matchmaking process that passed since the last report."
8870
+ "summary": "For matchmaking configurations that require acceptance, the potential matches that were accepted since the last report."
8817
8871
  },
8818
8872
  "locationInModule": {
8819
- "filename": "lib/matchmaking-ruleset.ts",
8820
- "line": 36
8873
+ "filename": "lib/matchmaking-configuration.ts",
8874
+ "line": 65
8821
8875
  },
8822
- "name": "metricRuleEvaluationsPassed",
8876
+ "name": "metricMatchesAccepted",
8823
8877
  "parameters": [
8824
8878
  {
8825
8879
  "name": "props",
@@ -8834,161 +8888,140 @@
8834
8888
  "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8835
8889
  }
8836
8890
  }
8837
- }
8838
- ],
8839
- "name": "IMatchmakingRuleSet",
8840
- "properties": [
8891
+ },
8841
8892
  {
8842
8893
  "abstract": true,
8843
8894
  "docs": {
8844
- "custom": {
8845
- "attribute": "true"
8846
- },
8847
8895
  "stability": "experimental",
8848
- "summary": "The ARN of the ruleSet."
8896
+ "summary": "Potential matches that were created since the last report."
8849
8897
  },
8850
- "immutable": true,
8851
8898
  "locationInModule": {
8852
- "filename": "lib/matchmaking-ruleset.ts",
8853
- "line": 24
8899
+ "filename": "lib/matchmaking-configuration.ts",
8900
+ "line": 70
8854
8901
  },
8855
- "name": "matchmakingRuleSetArn",
8856
- "type": {
8857
- "primitive": "string"
8902
+ "name": "metricMatchesCreated",
8903
+ "parameters": [
8904
+ {
8905
+ "name": "props",
8906
+ "optional": true,
8907
+ "type": {
8908
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
8909
+ }
8910
+ }
8911
+ ],
8912
+ "returns": {
8913
+ "type": {
8914
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8915
+ }
8858
8916
  }
8859
8917
  },
8860
8918
  {
8861
8919
  "abstract": true,
8862
8920
  "docs": {
8863
- "custom": {
8864
- "attribute": "true"
8865
- },
8866
8921
  "stability": "experimental",
8867
- "summary": "The unique name of the ruleSet."
8922
+ "summary": "Matches that were successfully placed into a game session since the last report."
8868
8923
  },
8869
- "immutable": true,
8870
8924
  "locationInModule": {
8871
- "filename": "lib/matchmaking-ruleset.ts",
8872
- "line": 17
8925
+ "filename": "lib/matchmaking-configuration.ts",
8926
+ "line": 75
8873
8927
  },
8874
- "name": "matchmakingRuleSetName",
8875
- "type": {
8876
- "primitive": "string"
8928
+ "name": "metricMatchesPlaced",
8929
+ "parameters": [
8930
+ {
8931
+ "name": "props",
8932
+ "optional": true,
8933
+ "type": {
8934
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
8935
+ }
8936
+ }
8937
+ ],
8938
+ "returns": {
8939
+ "type": {
8940
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8941
+ }
8877
8942
  }
8878
- }
8879
- ],
8880
- "symbolId": "lib/matchmaking-ruleset:IMatchmakingRuleSet"
8881
- },
8882
- "@aws-cdk/aws-gamelift-alpha.IPeer": {
8883
- "assembly": "@aws-cdk/aws-gamelift-alpha",
8884
- "docs": {
8885
- "stability": "experimental",
8886
- "summary": "Interface for classes that provide the peer-specification parts of an inbound permission."
8887
- },
8888
- "fqn": "@aws-cdk/aws-gamelift-alpha.IPeer",
8889
- "kind": "interface",
8890
- "locationInModule": {
8891
- "filename": "lib/ingress-rule.ts",
8892
- "line": 127
8893
- },
8894
- "methods": [
8943
+ },
8895
8944
  {
8896
8945
  "abstract": true,
8897
8946
  "docs": {
8898
8947
  "stability": "experimental",
8899
- "summary": "Produce the ingress rule JSON for the given connection."
8948
+ "summary": "For matchmaking configurations that require acceptance, the potential matches that were rejected by at least one player since the last report."
8900
8949
  },
8901
8950
  "locationInModule": {
8902
- "filename": "lib/ingress-rule.ts",
8903
- "line": 137
8951
+ "filename": "lib/matchmaking-configuration.ts",
8952
+ "line": 80
8904
8953
  },
8905
- "name": "toJson",
8954
+ "name": "metricMatchesRejected",
8955
+ "parameters": [
8956
+ {
8957
+ "name": "props",
8958
+ "optional": true,
8959
+ "type": {
8960
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
8961
+ }
8962
+ }
8963
+ ],
8906
8964
  "returns": {
8907
8965
  "type": {
8908
- "primitive": "any"
8966
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8909
8967
  }
8910
8968
  }
8911
- }
8912
- ],
8913
- "name": "IPeer",
8914
- "properties": [
8969
+ },
8915
8970
  {
8916
8971
  "abstract": true,
8917
8972
  "docs": {
8918
8973
  "stability": "experimental",
8919
- "summary": "A unique identifier for this connection peer."
8974
+ "summary": "Players in matchmaking tickets that were added since the last report."
8920
8975
  },
8921
- "immutable": true,
8922
8976
  "locationInModule": {
8923
- "filename": "lib/ingress-rule.ts",
8924
- "line": 132
8977
+ "filename": "lib/matchmaking-configuration.ts",
8978
+ "line": 85
8925
8979
  },
8926
- "name": "uniqueId",
8927
- "type": {
8928
- "primitive": "string"
8980
+ "name": "metricPlayersStarted",
8981
+ "parameters": [
8982
+ {
8983
+ "name": "props",
8984
+ "optional": true,
8985
+ "type": {
8986
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
8987
+ }
8988
+ }
8989
+ ],
8990
+ "returns": {
8991
+ "type": {
8992
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8993
+ }
8929
8994
  }
8930
- }
8931
- ],
8932
- "symbolId": "lib/ingress-rule:IPeer"
8933
- },
8934
- "@aws-cdk/aws-gamelift-alpha.IRuleSetBody": {
8935
- "assembly": "@aws-cdk/aws-gamelift-alpha",
8936
- "docs": {
8937
- "stability": "experimental",
8938
- "summary": "Interface to represent Matchmaking RuleSet schema."
8939
- },
8940
- "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetBody",
8941
- "kind": "interface",
8942
- "locationInModule": {
8943
- "filename": "lib/matchmaking-ruleset-body.ts",
8944
- "line": 7
8945
- },
8946
- "name": "IRuleSetBody",
8947
- "symbolId": "lib/matchmaking-ruleset-body:IRuleSetBody"
8948
- },
8949
- "@aws-cdk/aws-gamelift-alpha.IRuleSetContent": {
8950
- "assembly": "@aws-cdk/aws-gamelift-alpha",
8951
- "docs": {
8952
- "stability": "experimental",
8953
- "summary": "Interface to represent a Matchmaking RuleSet content."
8954
- },
8955
- "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetContent",
8956
- "kind": "interface",
8957
- "locationInModule": {
8958
- "filename": "lib/matchmaking-ruleset-body.ts",
8959
- "line": 22
8960
- },
8961
- "methods": [
8995
+ },
8962
8996
  {
8963
8997
  "abstract": true,
8964
8998
  "docs": {
8999
+ "remarks": "Units: seconds",
8965
9000
  "stability": "experimental",
8966
- "summary": "Called when the matchmaking ruleSet is initialized to allow this object to bind to the stack and add resources."
9001
+ "summary": "For matchmaking requests that were put into a potential match before the last report, the amount of time between ticket creation and potential match creation."
8967
9002
  },
8968
9003
  "locationInModule": {
8969
- "filename": "lib/matchmaking-ruleset-body.ts",
8970
- "line": 37
9004
+ "filename": "lib/matchmaking-configuration.ts",
9005
+ "line": 93
8971
9006
  },
8972
- "name": "bind",
9007
+ "name": "metricTimeToMatch",
8973
9008
  "parameters": [
8974
9009
  {
8975
- "docs": {
8976
- "summary": "The binding scope."
8977
- },
8978
- "name": "_scope",
9010
+ "name": "props",
9011
+ "optional": true,
8979
9012
  "type": {
8980
- "fqn": "constructs.Construct"
9013
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
8981
9014
  }
8982
9015
  }
8983
9016
  ],
8984
9017
  "returns": {
8985
9018
  "type": {
8986
- "fqn": "@aws-cdk/aws-gamelift-alpha.RuleSetBodyConfig"
9019
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
8987
9020
  }
8988
9021
  }
8989
9022
  }
8990
9023
  ],
8991
- "name": "IRuleSetContent",
9024
+ "name": "IMatchmakingConfiguration",
8992
9025
  "properties": [
8993
9026
  {
8994
9027
  "abstract": true,
@@ -8997,41 +9030,18 @@
8997
9030
  "attribute": "true"
8998
9031
  },
8999
9032
  "stability": "experimental",
9000
- "summary": "RuleSet body content."
9033
+ "summary": "The ARN of the matchmaking configuration."
9001
9034
  },
9002
9035
  "immutable": true,
9003
9036
  "locationInModule": {
9004
- "filename": "lib/matchmaking-ruleset-body.ts",
9005
- "line": 29
9037
+ "filename": "lib/matchmaking-configuration.ts",
9038
+ "line": 42
9006
9039
  },
9007
- "name": "content",
9040
+ "name": "matchmakingConfigurationArn",
9008
9041
  "type": {
9009
- "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetBody"
9042
+ "primitive": "string"
9010
9043
  }
9011
- }
9012
- ],
9013
- "symbolId": "lib/matchmaking-ruleset-body:IRuleSetContent"
9014
- },
9015
- "@aws-cdk/aws-gamelift-alpha.IScript": {
9016
- "assembly": "@aws-cdk/aws-gamelift-alpha",
9017
- "docs": {
9018
- "remarks": "Realtime Servers are provided by GameLift to use instead of a custom-built game server.\nYou configure Realtime Servers for your game clients by creating a script using JavaScript,\nand add custom game logic as appropriate to host game sessions for your players.\nYou upload the Realtime script to the GameLift service in the Regions where you plan to set up fleets.",
9019
- "see": "https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-script-uploading.html",
9020
- "stability": "experimental",
9021
- "summary": "Your configuration and custom game logic for use with Realtime Servers."
9022
- },
9023
- "fqn": "@aws-cdk/aws-gamelift-alpha.IScript",
9024
- "interfaces": [
9025
- "aws-cdk-lib.IResource",
9026
- "aws-cdk-lib.aws_iam.IGrantable"
9027
- ],
9028
- "kind": "interface",
9029
- "locationInModule": {
9030
- "filename": "lib/script.ts",
9031
- "line": 18
9032
- },
9033
- "name": "IScript",
9034
- "properties": [
9044
+ },
9035
9045
  {
9036
9046
  "abstract": true,
9037
9047
  "docs": {
@@ -9039,14 +9049,14 @@
9039
9049
  "attribute": "true"
9040
9050
  },
9041
9051
  "stability": "experimental",
9042
- "summary": "The ARN of the realtime server script."
9052
+ "summary": "The name of the matchmaking configuration."
9043
9053
  },
9044
9054
  "immutable": true,
9045
9055
  "locationInModule": {
9046
- "filename": "lib/script.ts",
9047
- "line": 32
9056
+ "filename": "lib/matchmaking-configuration.ts",
9057
+ "line": 35
9048
9058
  },
9049
- "name": "scriptArn",
9059
+ "name": "matchmakingConfigurationName",
9050
9060
  "type": {
9051
9061
  "primitive": "string"
9052
9062
  }
@@ -9058,269 +9068,1218 @@
9058
9068
  "attribute": "true"
9059
9069
  },
9060
9070
  "stability": "experimental",
9061
- "summary": "The Identifier of the realtime server script."
9071
+ "summary": "The notification target for matchmaking events."
9062
9072
  },
9063
9073
  "immutable": true,
9064
9074
  "locationInModule": {
9065
- "filename": "lib/script.ts",
9066
- "line": 25
9075
+ "filename": "lib/matchmaking-configuration.ts",
9076
+ "line": 49
9067
9077
  },
9068
- "name": "scriptId",
9078
+ "name": "notificationTarget",
9079
+ "optional": true,
9069
9080
  "type": {
9070
- "primitive": "string"
9081
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
9071
9082
  }
9072
9083
  }
9073
9084
  ],
9074
- "symbolId": "lib/script:IScript"
9085
+ "symbolId": "lib/matchmaking-configuration:IMatchmakingConfiguration"
9075
9086
  },
9076
- "@aws-cdk/aws-gamelift-alpha.IngressRule": {
9087
+ "@aws-cdk/aws-gamelift-alpha.IMatchmakingRuleSet": {
9077
9088
  "assembly": "@aws-cdk/aws-gamelift-alpha",
9078
- "datatype": true,
9079
9089
  "docs": {
9080
- "remarks": "New game sessions are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges.\n\nFleets with custom game builds must have permissions explicitly set.\nFor Realtime Servers fleets, GameLift automatically opens two port ranges, one for TCP messaging and one for UDP.",
9081
9090
  "stability": "experimental",
9082
- "summary": "A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an instance in a fleet.",
9083
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\n\ndeclare const peer: gamelift_alpha.IPeer;\ndeclare const port: gamelift_alpha.Port;\nconst ingressRule: gamelift_alpha.IngressRule = {\n port: port,\n source: peer,\n};",
9084
- "custom": {
9085
- "exampleMetadata": "fixture=_generated"
9086
- }
9091
+ "summary": "Represents a Gamelift matchmaking ruleset."
9087
9092
  },
9088
- "fqn": "@aws-cdk/aws-gamelift-alpha.IngressRule",
9093
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingRuleSet",
9094
+ "interfaces": [
9095
+ "aws-cdk-lib.IResource"
9096
+ ],
9089
9097
  "kind": "interface",
9090
9098
  "locationInModule": {
9091
- "filename": "lib/ingress-rule.ts",
9092
- "line": 214
9099
+ "filename": "lib/matchmaking-ruleset.ts",
9100
+ "line": 11
9093
9101
  },
9094
- "name": "IngressRule",
9095
- "properties": [
9102
+ "methods": [
9096
9103
  {
9097
9104
  "abstract": true,
9098
9105
  "docs": {
9099
9106
  "stability": "experimental",
9100
- "summary": "The port range used for ingress traffic."
9107
+ "summary": "Return the given named metric for this matchmaking ruleSet."
9101
9108
  },
9102
- "immutable": true,
9103
9109
  "locationInModule": {
9104
- "filename": "lib/ingress-rule.ts",
9105
- "line": 218
9110
+ "filename": "lib/matchmaking-ruleset.ts",
9111
+ "line": 29
9106
9112
  },
9107
- "name": "port",
9108
- "type": {
9109
- "fqn": "@aws-cdk/aws-gamelift-alpha.Port"
9113
+ "name": "metric",
9114
+ "parameters": [
9115
+ {
9116
+ "name": "metricName",
9117
+ "type": {
9118
+ "primitive": "string"
9119
+ }
9120
+ },
9121
+ {
9122
+ "name": "props",
9123
+ "optional": true,
9124
+ "type": {
9125
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9126
+ }
9127
+ }
9128
+ ],
9129
+ "returns": {
9130
+ "type": {
9131
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9132
+ }
9110
9133
  }
9111
9134
  },
9112
9135
  {
9113
9136
  "abstract": true,
9114
9137
  "docs": {
9138
+ "remarks": "This metric is limited to the top 50 rules.",
9115
9139
  "stability": "experimental",
9116
- "summary": "A range of allowed IP addresses ."
9140
+ "summary": "Rule evaluations during matchmaking that failed since the last report."
9117
9141
  },
9118
- "immutable": true,
9119
9142
  "locationInModule": {
9120
- "filename": "lib/ingress-rule.ts",
9121
- "line": 223
9143
+ "filename": "lib/matchmaking-ruleset.ts",
9144
+ "line": 44
9122
9145
  },
9123
- "name": "source",
9124
- "type": {
9125
- "fqn": "@aws-cdk/aws-gamelift-alpha.IPeer"
9146
+ "name": "metricRuleEvaluationsFailed",
9147
+ "parameters": [
9148
+ {
9149
+ "name": "props",
9150
+ "optional": true,
9151
+ "type": {
9152
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9153
+ }
9154
+ }
9155
+ ],
9156
+ "returns": {
9157
+ "type": {
9158
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9159
+ }
9160
+ }
9161
+ },
9162
+ {
9163
+ "abstract": true,
9164
+ "docs": {
9165
+ "remarks": "This metric is limited to the top 50 rules.",
9166
+ "stability": "experimental",
9167
+ "summary": "Rule evaluations during the matchmaking process that passed since the last report."
9168
+ },
9169
+ "locationInModule": {
9170
+ "filename": "lib/matchmaking-ruleset.ts",
9171
+ "line": 36
9172
+ },
9173
+ "name": "metricRuleEvaluationsPassed",
9174
+ "parameters": [
9175
+ {
9176
+ "name": "props",
9177
+ "optional": true,
9178
+ "type": {
9179
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9180
+ }
9181
+ }
9182
+ ],
9183
+ "returns": {
9184
+ "type": {
9185
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9186
+ }
9126
9187
  }
9127
9188
  }
9128
9189
  ],
9129
- "symbolId": "lib/ingress-rule:IngressRule"
9130
- },
9131
- "@aws-cdk/aws-gamelift-alpha.InstanceDefinition": {
9132
- "assembly": "@aws-cdk/aws-gamelift-alpha",
9133
- "datatype": true,
9134
- "docs": {
9135
- "remarks": "All game server groups must have at least two instance types defined for it.\nGameLift FleetIQ periodically evaluates each defined instance type for viability.\nIt then updates the Auto Scaling group with the list of viable instance types.",
9136
- "stability": "experimental",
9137
- "summary": "An allowed instance type for a game server group.",
9138
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const instanceType: ec2.InstanceType;\nconst instanceDefinition: gamelift_alpha.InstanceDefinition = {\n instanceType: instanceType,\n\n // the properties below are optional\n weight: 123,\n};",
9139
- "custom": {
9140
- "exampleMetadata": "fixture=_generated"
9141
- }
9142
- },
9143
- "fqn": "@aws-cdk/aws-gamelift-alpha.InstanceDefinition",
9144
- "kind": "interface",
9145
- "locationInModule": {
9146
- "filename": "lib/game-server-group.ts",
9147
- "line": 37
9148
- },
9149
- "name": "InstanceDefinition",
9190
+ "name": "IMatchmakingRuleSet",
9150
9191
  "properties": [
9151
9192
  {
9152
9193
  "abstract": true,
9153
9194
  "docs": {
9195
+ "custom": {
9196
+ "attribute": "true"
9197
+ },
9154
9198
  "stability": "experimental",
9155
- "summary": "An Amazon EC2 instance type designation."
9199
+ "summary": "The ARN of the ruleSet."
9156
9200
  },
9157
9201
  "immutable": true,
9158
9202
  "locationInModule": {
9159
- "filename": "lib/game-server-group.ts",
9160
- "line": 41
9203
+ "filename": "lib/matchmaking-ruleset.ts",
9204
+ "line": 24
9161
9205
  },
9162
- "name": "instanceType",
9206
+ "name": "matchmakingRuleSetArn",
9163
9207
  "type": {
9164
- "fqn": "aws-cdk-lib.aws_ec2.InstanceType"
9208
+ "primitive": "string"
9165
9209
  }
9166
9210
  },
9167
9211
  {
9168
9212
  "abstract": true,
9169
9213
  "docs": {
9170
- "default": "default value is 1",
9171
- "remarks": "Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.",
9172
- "see": "https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html",
9214
+ "custom": {
9215
+ "attribute": "true"
9216
+ },
9173
9217
  "stability": "experimental",
9174
- "summary": "Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group."
9218
+ "summary": "The unique name of the ruleSet."
9175
9219
  },
9176
9220
  "immutable": true,
9177
9221
  "locationInModule": {
9178
- "filename": "lib/game-server-group.ts",
9179
- "line": 50
9222
+ "filename": "lib/matchmaking-ruleset.ts",
9223
+ "line": 17
9180
9224
  },
9181
- "name": "weight",
9182
- "optional": true,
9225
+ "name": "matchmakingRuleSetName",
9183
9226
  "type": {
9184
- "primitive": "number"
9227
+ "primitive": "string"
9185
9228
  }
9186
9229
  }
9187
9230
  ],
9188
- "symbolId": "lib/game-server-group:InstanceDefinition"
9231
+ "symbolId": "lib/matchmaking-ruleset:IMatchmakingRuleSet"
9189
9232
  },
9190
- "@aws-cdk/aws-gamelift-alpha.Location": {
9233
+ "@aws-cdk/aws-gamelift-alpha.IPeer": {
9191
9234
  "assembly": "@aws-cdk/aws-gamelift-alpha",
9192
- "datatype": true,
9193
9235
  "docs": {
9194
9236
  "stability": "experimental",
9195
- "summary": "A remote location where a multi-location fleet can deploy EC2 instances for game hosting.",
9196
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nconst location: gamelift_alpha.Location = {\n region: 'region',\n\n // the properties below are optional\n capacity: {\n desiredCapacity: 123,\n maxSize: 123,\n minSize: 123,\n },\n};",
9197
- "custom": {
9198
- "exampleMetadata": "fixture=_generated"
9199
- }
9237
+ "summary": "Interface for classes that provide the peer-specification parts of an inbound permission."
9200
9238
  },
9201
- "fqn": "@aws-cdk/aws-gamelift-alpha.Location",
9239
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IPeer",
9202
9240
  "kind": "interface",
9203
9241
  "locationInModule": {
9204
- "filename": "lib/fleet-base.ts",
9205
- "line": 41
9242
+ "filename": "lib/ingress-rule.ts",
9243
+ "line": 127
9206
9244
  },
9207
- "name": "Location",
9208
- "properties": [
9245
+ "methods": [
9209
9246
  {
9210
9247
  "abstract": true,
9211
9248
  "docs": {
9212
9249
  "stability": "experimental",
9213
- "summary": "An AWS Region code."
9250
+ "summary": "Produce the ingress rule JSON for the given connection."
9214
9251
  },
9215
- "immutable": true,
9216
9252
  "locationInModule": {
9217
- "filename": "lib/fleet-base.ts",
9218
- "line": 45
9253
+ "filename": "lib/ingress-rule.ts",
9254
+ "line": 137
9219
9255
  },
9220
- "name": "region",
9221
- "type": {
9222
- "primitive": "string"
9256
+ "name": "toJson",
9257
+ "returns": {
9258
+ "type": {
9259
+ "primitive": "any"
9260
+ }
9223
9261
  }
9224
- },
9262
+ }
9263
+ ],
9264
+ "name": "IPeer",
9265
+ "properties": [
9225
9266
  {
9226
9267
  "abstract": true,
9227
9268
  "docs": {
9228
- "default": "no capacity settings on the specified location",
9229
- "remarks": "The location value might refer to a fleet's remote location or its home Region.",
9230
9269
  "stability": "experimental",
9231
- "summary": "Current resource capacity settings in a specified fleet or location."
9270
+ "summary": "A unique identifier for this connection peer."
9232
9271
  },
9233
9272
  "immutable": true,
9234
9273
  "locationInModule": {
9235
- "filename": "lib/fleet-base.ts",
9236
- "line": 52
9274
+ "filename": "lib/ingress-rule.ts",
9275
+ "line": 132
9237
9276
  },
9238
- "name": "capacity",
9239
- "optional": true,
9277
+ "name": "uniqueId",
9240
9278
  "type": {
9241
- "fqn": "@aws-cdk/aws-gamelift-alpha.LocationCapacity"
9279
+ "primitive": "string"
9242
9280
  }
9243
9281
  }
9244
9282
  ],
9245
- "symbolId": "lib/fleet-base:Location"
9283
+ "symbolId": "lib/ingress-rule:IPeer"
9246
9284
  },
9247
- "@aws-cdk/aws-gamelift-alpha.LocationCapacity": {
9285
+ "@aws-cdk/aws-gamelift-alpha.IRuleSetBody": {
9248
9286
  "assembly": "@aws-cdk/aws-gamelift-alpha",
9249
- "datatype": true,
9250
9287
  "docs": {
9251
- "remarks": "The location value might refer to a fleet's remote location or its home Region.",
9252
9288
  "stability": "experimental",
9253
- "summary": "Current resource capacity settings in a specified fleet or location.",
9254
- "example": "declare const build: gamelift.Build;\n\n// Locations can be added directly through constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n locations: [ {\n region: 'eu-west-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }, {\n region: 'us-east-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }]\n});\n\n// Or through dedicated methods\nfleet.addLocation('ap-southeast-1', 5, 2, 10);",
9255
- "custom": {
9256
- "exampleMetadata": "infused"
9257
- }
9289
+ "summary": "Interface to represent Matchmaking RuleSet schema."
9258
9290
  },
9259
- "fqn": "@aws-cdk/aws-gamelift-alpha.LocationCapacity",
9291
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetBody",
9260
9292
  "kind": "interface",
9261
9293
  "locationInModule": {
9262
- "filename": "lib/fleet-base.ts",
9263
- "line": 16
9294
+ "filename": "lib/matchmaking-ruleset-body.ts",
9295
+ "line": 7
9264
9296
  },
9265
- "name": "LocationCapacity",
9266
- "properties": [
9297
+ "name": "IRuleSetBody",
9298
+ "symbolId": "lib/matchmaking-ruleset-body:IRuleSetBody"
9299
+ },
9300
+ "@aws-cdk/aws-gamelift-alpha.IRuleSetContent": {
9301
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9302
+ "docs": {
9303
+ "stability": "experimental",
9304
+ "summary": "Interface to represent a Matchmaking RuleSet content."
9305
+ },
9306
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetContent",
9307
+ "kind": "interface",
9308
+ "locationInModule": {
9309
+ "filename": "lib/matchmaking-ruleset-body.ts",
9310
+ "line": 22
9311
+ },
9312
+ "methods": [
9267
9313
  {
9268
9314
  "abstract": true,
9269
9315
  "docs": {
9270
- "default": "the default value is 0",
9271
- "remarks": "This value must fall between the minimum and maximum size limits.",
9272
9316
  "stability": "experimental",
9273
- "summary": "The number of Amazon EC2 instances you want to maintain in the specified fleet location."
9317
+ "summary": "Called when the matchmaking ruleSet is initialized to allow this object to bind to the stack and add resources."
9318
+ },
9319
+ "locationInModule": {
9320
+ "filename": "lib/matchmaking-ruleset-body.ts",
9321
+ "line": 37
9322
+ },
9323
+ "name": "bind",
9324
+ "parameters": [
9325
+ {
9326
+ "docs": {
9327
+ "summary": "The binding scope."
9328
+ },
9329
+ "name": "_scope",
9330
+ "type": {
9331
+ "fqn": "constructs.Construct"
9332
+ }
9333
+ }
9334
+ ],
9335
+ "returns": {
9336
+ "type": {
9337
+ "fqn": "@aws-cdk/aws-gamelift-alpha.RuleSetBodyConfig"
9338
+ }
9339
+ }
9340
+ }
9341
+ ],
9342
+ "name": "IRuleSetContent",
9343
+ "properties": [
9344
+ {
9345
+ "abstract": true,
9346
+ "docs": {
9347
+ "custom": {
9348
+ "attribute": "true"
9349
+ },
9350
+ "stability": "experimental",
9351
+ "summary": "RuleSet body content."
9352
+ },
9353
+ "immutable": true,
9354
+ "locationInModule": {
9355
+ "filename": "lib/matchmaking-ruleset-body.ts",
9356
+ "line": 29
9357
+ },
9358
+ "name": "content",
9359
+ "type": {
9360
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IRuleSetBody"
9361
+ }
9362
+ }
9363
+ ],
9364
+ "symbolId": "lib/matchmaking-ruleset-body:IRuleSetContent"
9365
+ },
9366
+ "@aws-cdk/aws-gamelift-alpha.IScript": {
9367
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9368
+ "docs": {
9369
+ "remarks": "Realtime Servers are provided by GameLift to use instead of a custom-built game server.\nYou configure Realtime Servers for your game clients by creating a script using JavaScript,\nand add custom game logic as appropriate to host game sessions for your players.\nYou upload the Realtime script to the GameLift service in the Regions where you plan to set up fleets.",
9370
+ "see": "https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-script-uploading.html",
9371
+ "stability": "experimental",
9372
+ "summary": "Your configuration and custom game logic for use with Realtime Servers."
9373
+ },
9374
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IScript",
9375
+ "interfaces": [
9376
+ "aws-cdk-lib.IResource",
9377
+ "aws-cdk-lib.aws_iam.IGrantable"
9378
+ ],
9379
+ "kind": "interface",
9380
+ "locationInModule": {
9381
+ "filename": "lib/script.ts",
9382
+ "line": 18
9383
+ },
9384
+ "name": "IScript",
9385
+ "properties": [
9386
+ {
9387
+ "abstract": true,
9388
+ "docs": {
9389
+ "custom": {
9390
+ "attribute": "true"
9391
+ },
9392
+ "stability": "experimental",
9393
+ "summary": "The ARN of the realtime server script."
9394
+ },
9395
+ "immutable": true,
9396
+ "locationInModule": {
9397
+ "filename": "lib/script.ts",
9398
+ "line": 32
9399
+ },
9400
+ "name": "scriptArn",
9401
+ "type": {
9402
+ "primitive": "string"
9403
+ }
9404
+ },
9405
+ {
9406
+ "abstract": true,
9407
+ "docs": {
9408
+ "custom": {
9409
+ "attribute": "true"
9410
+ },
9411
+ "stability": "experimental",
9412
+ "summary": "The Identifier of the realtime server script."
9413
+ },
9414
+ "immutable": true,
9415
+ "locationInModule": {
9416
+ "filename": "lib/script.ts",
9417
+ "line": 25
9418
+ },
9419
+ "name": "scriptId",
9420
+ "type": {
9421
+ "primitive": "string"
9422
+ }
9423
+ }
9424
+ ],
9425
+ "symbolId": "lib/script:IScript"
9426
+ },
9427
+ "@aws-cdk/aws-gamelift-alpha.IngressRule": {
9428
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9429
+ "datatype": true,
9430
+ "docs": {
9431
+ "remarks": "New game sessions are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges.\n\nFleets with custom game builds must have permissions explicitly set.\nFor Realtime Servers fleets, GameLift automatically opens two port ranges, one for TCP messaging and one for UDP.",
9432
+ "stability": "experimental",
9433
+ "summary": "A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an instance in a fleet.",
9434
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\n\ndeclare const peer: gamelift_alpha.IPeer;\ndeclare const port: gamelift_alpha.Port;\nconst ingressRule: gamelift_alpha.IngressRule = {\n port: port,\n source: peer,\n};",
9435
+ "custom": {
9436
+ "exampleMetadata": "fixture=_generated"
9437
+ }
9438
+ },
9439
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IngressRule",
9440
+ "kind": "interface",
9441
+ "locationInModule": {
9442
+ "filename": "lib/ingress-rule.ts",
9443
+ "line": 214
9444
+ },
9445
+ "name": "IngressRule",
9446
+ "properties": [
9447
+ {
9448
+ "abstract": true,
9449
+ "docs": {
9450
+ "stability": "experimental",
9451
+ "summary": "The port range used for ingress traffic."
9452
+ },
9453
+ "immutable": true,
9454
+ "locationInModule": {
9455
+ "filename": "lib/ingress-rule.ts",
9456
+ "line": 218
9457
+ },
9458
+ "name": "port",
9459
+ "type": {
9460
+ "fqn": "@aws-cdk/aws-gamelift-alpha.Port"
9461
+ }
9462
+ },
9463
+ {
9464
+ "abstract": true,
9465
+ "docs": {
9466
+ "stability": "experimental",
9467
+ "summary": "A range of allowed IP addresses ."
9468
+ },
9469
+ "immutable": true,
9470
+ "locationInModule": {
9471
+ "filename": "lib/ingress-rule.ts",
9472
+ "line": 223
9473
+ },
9474
+ "name": "source",
9475
+ "type": {
9476
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IPeer"
9477
+ }
9478
+ }
9479
+ ],
9480
+ "symbolId": "lib/ingress-rule:IngressRule"
9481
+ },
9482
+ "@aws-cdk/aws-gamelift-alpha.InstanceDefinition": {
9483
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9484
+ "datatype": true,
9485
+ "docs": {
9486
+ "remarks": "All game server groups must have at least two instance types defined for it.\nGameLift FleetIQ periodically evaluates each defined instance type for viability.\nIt then updates the Auto Scaling group with the list of viable instance types.",
9487
+ "stability": "experimental",
9488
+ "summary": "An allowed instance type for a game server group.",
9489
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const instanceType: ec2.InstanceType;\nconst instanceDefinition: gamelift_alpha.InstanceDefinition = {\n instanceType: instanceType,\n\n // the properties below are optional\n weight: 123,\n};",
9490
+ "custom": {
9491
+ "exampleMetadata": "fixture=_generated"
9492
+ }
9493
+ },
9494
+ "fqn": "@aws-cdk/aws-gamelift-alpha.InstanceDefinition",
9495
+ "kind": "interface",
9496
+ "locationInModule": {
9497
+ "filename": "lib/game-server-group.ts",
9498
+ "line": 37
9499
+ },
9500
+ "name": "InstanceDefinition",
9501
+ "properties": [
9502
+ {
9503
+ "abstract": true,
9504
+ "docs": {
9505
+ "stability": "experimental",
9506
+ "summary": "An Amazon EC2 instance type designation."
9507
+ },
9508
+ "immutable": true,
9509
+ "locationInModule": {
9510
+ "filename": "lib/game-server-group.ts",
9511
+ "line": 41
9512
+ },
9513
+ "name": "instanceType",
9514
+ "type": {
9515
+ "fqn": "aws-cdk-lib.aws_ec2.InstanceType"
9516
+ }
9517
+ },
9518
+ {
9519
+ "abstract": true,
9520
+ "docs": {
9521
+ "default": "default value is 1",
9522
+ "remarks": "Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.",
9523
+ "see": "https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html",
9524
+ "stability": "experimental",
9525
+ "summary": "Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group."
9526
+ },
9527
+ "immutable": true,
9528
+ "locationInModule": {
9529
+ "filename": "lib/game-server-group.ts",
9530
+ "line": 50
9531
+ },
9532
+ "name": "weight",
9533
+ "optional": true,
9534
+ "type": {
9535
+ "primitive": "number"
9536
+ }
9537
+ }
9538
+ ],
9539
+ "symbolId": "lib/game-server-group:InstanceDefinition"
9540
+ },
9541
+ "@aws-cdk/aws-gamelift-alpha.Location": {
9542
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9543
+ "datatype": true,
9544
+ "docs": {
9545
+ "stability": "experimental",
9546
+ "summary": "A remote location where a multi-location fleet can deploy EC2 instances for game hosting.",
9547
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nconst location: gamelift_alpha.Location = {\n region: 'region',\n\n // the properties below are optional\n capacity: {\n desiredCapacity: 123,\n maxSize: 123,\n minSize: 123,\n },\n};",
9548
+ "custom": {
9549
+ "exampleMetadata": "fixture=_generated"
9550
+ }
9551
+ },
9552
+ "fqn": "@aws-cdk/aws-gamelift-alpha.Location",
9553
+ "kind": "interface",
9554
+ "locationInModule": {
9555
+ "filename": "lib/fleet-base.ts",
9556
+ "line": 41
9557
+ },
9558
+ "name": "Location",
9559
+ "properties": [
9560
+ {
9561
+ "abstract": true,
9562
+ "docs": {
9563
+ "stability": "experimental",
9564
+ "summary": "An AWS Region code."
9274
9565
  },
9275
9566
  "immutable": true,
9276
9567
  "locationInModule": {
9277
9568
  "filename": "lib/fleet-base.ts",
9278
- "line": 23
9569
+ "line": 45
9570
+ },
9571
+ "name": "region",
9572
+ "type": {
9573
+ "primitive": "string"
9574
+ }
9575
+ },
9576
+ {
9577
+ "abstract": true,
9578
+ "docs": {
9579
+ "default": "no capacity settings on the specified location",
9580
+ "remarks": "The location value might refer to a fleet's remote location or its home Region.",
9581
+ "stability": "experimental",
9582
+ "summary": "Current resource capacity settings in a specified fleet or location."
9583
+ },
9584
+ "immutable": true,
9585
+ "locationInModule": {
9586
+ "filename": "lib/fleet-base.ts",
9587
+ "line": 52
9588
+ },
9589
+ "name": "capacity",
9590
+ "optional": true,
9591
+ "type": {
9592
+ "fqn": "@aws-cdk/aws-gamelift-alpha.LocationCapacity"
9593
+ }
9594
+ }
9595
+ ],
9596
+ "symbolId": "lib/fleet-base:Location"
9597
+ },
9598
+ "@aws-cdk/aws-gamelift-alpha.LocationCapacity": {
9599
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9600
+ "datatype": true,
9601
+ "docs": {
9602
+ "remarks": "The location value might refer to a fleet's remote location or its home Region.",
9603
+ "stability": "experimental",
9604
+ "summary": "Current resource capacity settings in a specified fleet or location.",
9605
+ "example": "declare const build: gamelift.Build;\n\n// Locations can be added directly through constructor\nconst fleet = new gamelift.BuildFleet(this, 'Game server fleet', {\n fleetName: 'test-fleet',\n content: build,\n instanceType: ec2.InstanceType.of(ec2.InstanceClass.C4, ec2.InstanceSize.LARGE),\n runtimeConfiguration: {\n serverProcesses: [{\n launchPath: '/local/game/GameLiftExampleServer.x86_64',\n }]\n },\n locations: [ {\n region: 'eu-west-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }, {\n region: 'us-east-1',\n capacity: {\n desiredCapacity: 5,\n minSize: 2,\n maxSize: 10\n }\n }]\n});\n\n// Or through dedicated methods\nfleet.addLocation('ap-southeast-1', 5, 2, 10);",
9606
+ "custom": {
9607
+ "exampleMetadata": "infused"
9608
+ }
9609
+ },
9610
+ "fqn": "@aws-cdk/aws-gamelift-alpha.LocationCapacity",
9611
+ "kind": "interface",
9612
+ "locationInModule": {
9613
+ "filename": "lib/fleet-base.ts",
9614
+ "line": 16
9615
+ },
9616
+ "name": "LocationCapacity",
9617
+ "properties": [
9618
+ {
9619
+ "abstract": true,
9620
+ "docs": {
9621
+ "default": "the default value is 0",
9622
+ "remarks": "This value must fall between the minimum and maximum size limits.",
9623
+ "stability": "experimental",
9624
+ "summary": "The number of Amazon EC2 instances you want to maintain in the specified fleet location."
9625
+ },
9626
+ "immutable": true,
9627
+ "locationInModule": {
9628
+ "filename": "lib/fleet-base.ts",
9629
+ "line": 23
9630
+ },
9631
+ "name": "desiredCapacity",
9632
+ "optional": true,
9633
+ "type": {
9634
+ "primitive": "number"
9635
+ }
9636
+ },
9637
+ {
9638
+ "abstract": true,
9639
+ "docs": {
9640
+ "default": "the default value is 1",
9641
+ "stability": "experimental",
9642
+ "summary": "The maximum number of instances that are allowed in the specified fleet location."
9643
+ },
9644
+ "immutable": true,
9645
+ "locationInModule": {
9646
+ "filename": "lib/fleet-base.ts",
9647
+ "line": 29
9648
+ },
9649
+ "name": "maxSize",
9650
+ "optional": true,
9651
+ "type": {
9652
+ "primitive": "number"
9653
+ }
9654
+ },
9655
+ {
9656
+ "abstract": true,
9657
+ "docs": {
9658
+ "default": "the default value is 0",
9659
+ "stability": "experimental",
9660
+ "summary": "The minimum number of instances that are allowed in the specified fleet location."
9661
+ },
9662
+ "immutable": true,
9663
+ "locationInModule": {
9664
+ "filename": "lib/fleet-base.ts",
9665
+ "line": 35
9666
+ },
9667
+ "name": "minSize",
9668
+ "optional": true,
9669
+ "type": {
9670
+ "primitive": "number"
9671
+ }
9672
+ }
9673
+ ],
9674
+ "symbolId": "lib/fleet-base:LocationCapacity"
9675
+ },
9676
+ "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationAttributes": {
9677
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9678
+ "datatype": true,
9679
+ "docs": {
9680
+ "stability": "experimental",
9681
+ "summary": "A full specification of a matchmaking configuration that can be used to import it fluently into the CDK application.",
9682
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nimport { aws_sns as sns } from 'aws-cdk-lib';\n\ndeclare const topic: sns.Topic;\nconst matchmakingConfigurationAttributes: gamelift_alpha.MatchmakingConfigurationAttributes = {\n matchmakingConfigurationArn: 'matchmakingConfigurationArn',\n matchmakingConfigurationName: 'matchmakingConfigurationName',\n notificationTarget: topic,\n};",
9683
+ "custom": {
9684
+ "exampleMetadata": "fixture=_generated"
9685
+ }
9686
+ },
9687
+ "fqn": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationAttributes",
9688
+ "kind": "interface",
9689
+ "locationInModule": {
9690
+ "filename": "lib/matchmaking-configuration.ts",
9691
+ "line": 99
9692
+ },
9693
+ "name": "MatchmakingConfigurationAttributes",
9694
+ "properties": [
9695
+ {
9696
+ "abstract": true,
9697
+ "docs": {
9698
+ "default": "derived from `matchmakingConfigurationName`.",
9699
+ "remarks": "At least one of `matchmakingConfigurationArn` and `matchmakingConfigurationName` must be provided.",
9700
+ "stability": "experimental",
9701
+ "summary": "The ARN of the Matchmaking configuration."
9702
+ },
9703
+ "immutable": true,
9704
+ "locationInModule": {
9705
+ "filename": "lib/matchmaking-configuration.ts",
9706
+ "line": 107
9707
+ },
9708
+ "name": "matchmakingConfigurationArn",
9709
+ "optional": true,
9710
+ "type": {
9711
+ "primitive": "string"
9712
+ }
9713
+ },
9714
+ {
9715
+ "abstract": true,
9716
+ "docs": {
9717
+ "default": "derived from `matchmakingConfigurationArn`.",
9718
+ "remarks": "At least one of `matchmakingConfigurationName` and `matchmakingConfigurationArn` must be provided.",
9719
+ "stability": "experimental",
9720
+ "summary": "The identifier of the Matchmaking configuration."
9721
+ },
9722
+ "immutable": true,
9723
+ "locationInModule": {
9724
+ "filename": "lib/matchmaking-configuration.ts",
9725
+ "line": 116
9726
+ },
9727
+ "name": "matchmakingConfigurationName",
9728
+ "optional": true,
9729
+ "type": {
9730
+ "primitive": "string"
9731
+ }
9732
+ },
9733
+ {
9734
+ "abstract": true,
9735
+ "docs": {
9736
+ "default": "no notification target binded to imported ressource",
9737
+ "see": "https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html",
9738
+ "stability": "experimental",
9739
+ "summary": "An SNS topic ARN that is set up to receive matchmaking notifications."
9740
+ },
9741
+ "immutable": true,
9742
+ "locationInModule": {
9743
+ "filename": "lib/matchmaking-configuration.ts",
9744
+ "line": 125
9745
+ },
9746
+ "name": "notificationTarget",
9747
+ "optional": true,
9748
+ "type": {
9749
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
9750
+ }
9751
+ }
9752
+ ],
9753
+ "symbolId": "lib/matchmaking-configuration:MatchmakingConfigurationAttributes"
9754
+ },
9755
+ "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase": {
9756
+ "abstract": true,
9757
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
9758
+ "base": "aws-cdk-lib.Resource",
9759
+ "docs": {
9760
+ "stability": "experimental",
9761
+ "summary": "Base class for new and imported GameLift Matchmaking configuration.",
9762
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nimport { aws_sns as sns } from 'aws-cdk-lib';\n\ndeclare const topic: sns.Topic;\nconst matchmakingConfigurationBase = gamelift_alpha.MatchmakingConfigurationBase.fromMatchmakingConfigurationAttributes(this, 'MyMatchmakingConfigurationBase', {\n matchmakingConfigurationArn: 'matchmakingConfigurationArn',\n matchmakingConfigurationName: 'matchmakingConfigurationName',\n notificationTarget: topic,\n});",
9763
+ "custom": {
9764
+ "exampleMetadata": "fixture=_generated"
9765
+ }
9766
+ },
9767
+ "fqn": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
9768
+ "initializer": {
9769
+ "docs": {
9770
+ "stability": "stable"
9771
+ },
9772
+ "locationInModule": {
9773
+ "filename": "core/lib/resource.ts",
9774
+ "line": 156
9775
+ },
9776
+ "parameters": [
9777
+ {
9778
+ "name": "scope",
9779
+ "type": {
9780
+ "fqn": "constructs.Construct"
9781
+ }
9782
+ },
9783
+ {
9784
+ "name": "id",
9785
+ "type": {
9786
+ "primitive": "string"
9787
+ }
9788
+ },
9789
+ {
9790
+ "name": "props",
9791
+ "optional": true,
9792
+ "type": {
9793
+ "fqn": "aws-cdk-lib.ResourceProps"
9794
+ }
9795
+ }
9796
+ ]
9797
+ },
9798
+ "interfaces": [
9799
+ "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
9800
+ ],
9801
+ "kind": "class",
9802
+ "locationInModule": {
9803
+ "filename": "lib/matchmaking-configuration.ts",
9804
+ "line": 196
9805
+ },
9806
+ "methods": [
9807
+ {
9808
+ "docs": {
9809
+ "stability": "experimental",
9810
+ "summary": "Import an existing matchmaking configuration from its attributes."
9811
+ },
9812
+ "locationInModule": {
9813
+ "filename": "lib/matchmaking-configuration.ts",
9814
+ "line": 202
9815
+ },
9816
+ "name": "fromMatchmakingConfigurationAttributes",
9817
+ "parameters": [
9818
+ {
9819
+ "name": "scope",
9820
+ "type": {
9821
+ "fqn": "constructs.Construct"
9822
+ }
9823
+ },
9824
+ {
9825
+ "name": "id",
9826
+ "type": {
9827
+ "primitive": "string"
9828
+ }
9829
+ },
9830
+ {
9831
+ "name": "attrs",
9832
+ "type": {
9833
+ "fqn": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationAttributes"
9834
+ }
9835
+ }
9836
+ ],
9837
+ "returns": {
9838
+ "type": {
9839
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
9840
+ }
9841
+ },
9842
+ "static": true
9843
+ },
9844
+ {
9845
+ "docs": {
9846
+ "stability": "experimental",
9847
+ "summary": "Return the given named metric for this matchmaking configuration."
9848
+ },
9849
+ "locationInModule": {
9850
+ "filename": "lib/matchmaking-configuration.ts",
9851
+ "line": 247
9852
+ },
9853
+ "name": "metric",
9854
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9855
+ "parameters": [
9856
+ {
9857
+ "name": "metricName",
9858
+ "type": {
9859
+ "primitive": "string"
9860
+ }
9861
+ },
9862
+ {
9863
+ "name": "props",
9864
+ "optional": true,
9865
+ "type": {
9866
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9867
+ }
9868
+ }
9869
+ ],
9870
+ "returns": {
9871
+ "type": {
9872
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9873
+ }
9874
+ }
9875
+ },
9876
+ {
9877
+ "docs": {
9878
+ "stability": "experimental",
9879
+ "summary": "Matchmaking requests currently being processed or waiting to be processed."
9880
+ },
9881
+ "locationInModule": {
9882
+ "filename": "lib/matchmaking-configuration.ts",
9883
+ "line": 258
9884
+ },
9885
+ "name": "metricCurrentTickets",
9886
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9887
+ "parameters": [
9888
+ {
9889
+ "name": "props",
9890
+ "optional": true,
9891
+ "type": {
9892
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9893
+ }
9894
+ }
9895
+ ],
9896
+ "returns": {
9897
+ "type": {
9898
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9899
+ }
9900
+ }
9901
+ },
9902
+ {
9903
+ "docs": {
9904
+ "stability": "experimental",
9905
+ "summary": "For matchmaking configurations that require acceptance, the potential matches that were accepted since the last report."
9906
+ },
9907
+ "locationInModule": {
9908
+ "filename": "lib/matchmaking-configuration.ts",
9909
+ "line": 262
9910
+ },
9911
+ "name": "metricMatchesAccepted",
9912
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9913
+ "parameters": [
9914
+ {
9915
+ "name": "props",
9916
+ "optional": true,
9917
+ "type": {
9918
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9919
+ }
9920
+ }
9921
+ ],
9922
+ "returns": {
9923
+ "type": {
9924
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9925
+ }
9926
+ }
9927
+ },
9928
+ {
9929
+ "docs": {
9930
+ "stability": "experimental",
9931
+ "summary": "Potential matches that were created since the last report."
9932
+ },
9933
+ "locationInModule": {
9934
+ "filename": "lib/matchmaking-configuration.ts",
9935
+ "line": 266
9936
+ },
9937
+ "name": "metricMatchesCreated",
9938
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9939
+ "parameters": [
9940
+ {
9941
+ "name": "props",
9942
+ "optional": true,
9943
+ "type": {
9944
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9945
+ }
9946
+ }
9947
+ ],
9948
+ "returns": {
9949
+ "type": {
9950
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9951
+ }
9952
+ }
9953
+ },
9954
+ {
9955
+ "docs": {
9956
+ "stability": "experimental",
9957
+ "summary": "Matches that were successfully placed into a game session since the last report."
9958
+ },
9959
+ "locationInModule": {
9960
+ "filename": "lib/matchmaking-configuration.ts",
9961
+ "line": 270
9962
+ },
9963
+ "name": "metricMatchesPlaced",
9964
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9965
+ "parameters": [
9966
+ {
9967
+ "name": "props",
9968
+ "optional": true,
9969
+ "type": {
9970
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9971
+ }
9972
+ }
9973
+ ],
9974
+ "returns": {
9975
+ "type": {
9976
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
9977
+ }
9978
+ }
9979
+ },
9980
+ {
9981
+ "docs": {
9982
+ "stability": "experimental",
9983
+ "summary": "For matchmaking configurations that require acceptance, the potential matches that were rejected by at least one player since the last report."
9984
+ },
9985
+ "locationInModule": {
9986
+ "filename": "lib/matchmaking-configuration.ts",
9987
+ "line": 274
9988
+ },
9989
+ "name": "metricMatchesRejected",
9990
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
9991
+ "parameters": [
9992
+ {
9993
+ "name": "props",
9994
+ "optional": true,
9995
+ "type": {
9996
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
9997
+ }
9998
+ }
9999
+ ],
10000
+ "returns": {
10001
+ "type": {
10002
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
10003
+ }
10004
+ }
10005
+ },
10006
+ {
10007
+ "docs": {
10008
+ "stability": "experimental",
10009
+ "summary": "Players in matchmaking tickets that were added since the last report."
10010
+ },
10011
+ "locationInModule": {
10012
+ "filename": "lib/matchmaking-configuration.ts",
10013
+ "line": 278
10014
+ },
10015
+ "name": "metricPlayersStarted",
10016
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
10017
+ "parameters": [
10018
+ {
10019
+ "name": "props",
10020
+ "optional": true,
10021
+ "type": {
10022
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
10023
+ }
10024
+ }
10025
+ ],
10026
+ "returns": {
10027
+ "type": {
10028
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
10029
+ }
10030
+ }
10031
+ },
10032
+ {
10033
+ "docs": {
10034
+ "remarks": "Units: seconds",
10035
+ "stability": "experimental",
10036
+ "summary": "For matchmaking requests that were put into a potential match before the last report, the amount of time between ticket creation and potential match creation."
10037
+ },
10038
+ "locationInModule": {
10039
+ "filename": "lib/matchmaking-configuration.ts",
10040
+ "line": 282
10041
+ },
10042
+ "name": "metricTimeToMatch",
10043
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
10044
+ "parameters": [
10045
+ {
10046
+ "name": "props",
10047
+ "optional": true,
10048
+ "type": {
10049
+ "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions"
10050
+ }
10051
+ }
10052
+ ],
10053
+ "returns": {
10054
+ "type": {
10055
+ "fqn": "aws-cdk-lib.aws_cloudwatch.Metric"
10056
+ }
10057
+ }
10058
+ }
10059
+ ],
10060
+ "name": "MatchmakingConfigurationBase",
10061
+ "properties": [
10062
+ {
10063
+ "abstract": true,
10064
+ "docs": {
10065
+ "stability": "experimental",
10066
+ "summary": "The ARN of the matchmaking configuration."
10067
+ },
10068
+ "immutable": true,
10069
+ "locationInModule": {
10070
+ "filename": "lib/matchmaking-configuration.ts",
10071
+ "line": 240
10072
+ },
10073
+ "name": "matchmakingConfigurationArn",
10074
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
10075
+ "type": {
10076
+ "primitive": "string"
10077
+ }
10078
+ },
10079
+ {
10080
+ "abstract": true,
10081
+ "docs": {
10082
+ "stability": "experimental",
10083
+ "summary": "The Identifier of the matchmaking configuration."
10084
+ },
10085
+ "immutable": true,
10086
+ "locationInModule": {
10087
+ "filename": "lib/matchmaking-configuration.ts",
10088
+ "line": 236
10089
+ },
10090
+ "name": "matchmakingConfigurationName",
10091
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
10092
+ "type": {
10093
+ "primitive": "string"
10094
+ }
10095
+ },
10096
+ {
10097
+ "abstract": true,
10098
+ "docs": {
10099
+ "stability": "experimental",
10100
+ "summary": "The notification target for matchmaking events."
10101
+ },
10102
+ "immutable": true,
10103
+ "locationInModule": {
10104
+ "filename": "lib/matchmaking-configuration.ts",
10105
+ "line": 245
10106
+ },
10107
+ "name": "notificationTarget",
10108
+ "optional": true,
10109
+ "overrides": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration",
10110
+ "type": {
10111
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
10112
+ }
10113
+ }
10114
+ ],
10115
+ "symbolId": "lib/matchmaking-configuration:MatchmakingConfigurationBase"
10116
+ },
10117
+ "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationProps": {
10118
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
10119
+ "datatype": true,
10120
+ "docs": {
10121
+ "stability": "experimental",
10122
+ "summary": "Properties for a new Gamelift matchmaking configuration.",
10123
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as gamelift_alpha from '@aws-cdk/aws-gamelift-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_sns as sns } from 'aws-cdk-lib';\n\ndeclare const matchmakingRuleSet: gamelift_alpha.MatchmakingRuleSet;\ndeclare const topic: sns.Topic;\nconst matchmakingConfigurationProps: gamelift_alpha.MatchmakingConfigurationProps = {\n matchmakingConfigurationName: 'matchmakingConfigurationName',\n ruleSet: matchmakingRuleSet,\n\n // the properties below are optional\n acceptanceTimeout: cdk.Duration.minutes(30),\n customEventData: 'customEventData',\n description: 'description',\n notificationTarget: topic,\n requestTimeout: cdk.Duration.minutes(30),\n requireAcceptance: false,\n};",
10124
+ "custom": {
10125
+ "exampleMetadata": "fixture=_generated"
10126
+ }
10127
+ },
10128
+ "fqn": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationProps",
10129
+ "kind": "interface",
10130
+ "locationInModule": {
10131
+ "filename": "lib/matchmaking-configuration.ts",
10132
+ "line": 131
10133
+ },
10134
+ "name": "MatchmakingConfigurationProps",
10135
+ "properties": [
10136
+ {
10137
+ "abstract": true,
10138
+ "docs": {
10139
+ "remarks": "This name is used to identify the configuration associated with a matchmaking request or ticket.",
10140
+ "stability": "experimental",
10141
+ "summary": "A unique identifier for the matchmaking configuration."
10142
+ },
10143
+ "immutable": true,
10144
+ "locationInModule": {
10145
+ "filename": "lib/matchmaking-configuration.ts",
10146
+ "line": 137
10147
+ },
10148
+ "name": "matchmakingConfigurationName",
10149
+ "type": {
10150
+ "primitive": "string"
10151
+ }
10152
+ },
10153
+ {
10154
+ "abstract": true,
10155
+ "docs": {
10156
+ "remarks": "A matchmaking configuration can only use rule sets that are defined in the same Region.",
10157
+ "stability": "experimental",
10158
+ "summary": "A matchmaking rule set to use with this configuration."
10159
+ },
10160
+ "immutable": true,
10161
+ "locationInModule": {
10162
+ "filename": "lib/matchmaking-configuration.ts",
10163
+ "line": 190
10164
+ },
10165
+ "name": "ruleSet",
10166
+ "type": {
10167
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingRuleSet"
10168
+ }
10169
+ },
10170
+ {
10171
+ "abstract": true,
10172
+ "docs": {
10173
+ "default": "300 seconds",
10174
+ "stability": "experimental",
10175
+ "summary": "The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required."
10176
+ },
10177
+ "immutable": true,
10178
+ "locationInModule": {
10179
+ "filename": "lib/matchmaking-configuration.ts",
10180
+ "line": 159
10181
+ },
10182
+ "name": "acceptanceTimeout",
10183
+ "optional": true,
10184
+ "type": {
10185
+ "fqn": "aws-cdk-lib.Duration"
10186
+ }
10187
+ },
10188
+ {
10189
+ "abstract": true,
10190
+ "docs": {
10191
+ "default": "no custom data added to events",
10192
+ "stability": "experimental",
10193
+ "summary": "Information to add to all events related to the matchmaking configuration."
10194
+ },
10195
+ "immutable": true,
10196
+ "locationInModule": {
10197
+ "filename": "lib/matchmaking-configuration.ts",
10198
+ "line": 166
10199
+ },
10200
+ "name": "customEventData",
10201
+ "optional": true,
10202
+ "type": {
10203
+ "primitive": "string"
10204
+ }
10205
+ },
10206
+ {
10207
+ "abstract": true,
10208
+ "docs": {
10209
+ "default": "no description is provided",
10210
+ "stability": "experimental",
10211
+ "summary": "A human-readable description of the matchmaking configuration."
10212
+ },
10213
+ "immutable": true,
10214
+ "locationInModule": {
10215
+ "filename": "lib/matchmaking-configuration.ts",
10216
+ "line": 144
10217
+ },
10218
+ "name": "description",
10219
+ "optional": true,
10220
+ "type": {
10221
+ "primitive": "string"
10222
+ }
10223
+ },
10224
+ {
10225
+ "abstract": true,
10226
+ "docs": {
10227
+ "default": "no notification target",
10228
+ "see": "https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html",
10229
+ "stability": "experimental",
10230
+ "summary": "An SNS topic ARN that is set up to receive matchmaking notifications."
10231
+ },
10232
+ "immutable": true,
10233
+ "locationInModule": {
10234
+ "filename": "lib/matchmaking-configuration.ts",
10235
+ "line": 175
9279
10236
  },
9280
- "name": "desiredCapacity",
10237
+ "name": "notificationTarget",
9281
10238
  "optional": true,
9282
10239
  "type": {
9283
- "primitive": "number"
10240
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
9284
10241
  }
9285
10242
  },
9286
10243
  {
9287
10244
  "abstract": true,
9288
10245
  "docs": {
9289
- "default": "the default value is 1",
10246
+ "default": "300 seconds",
10247
+ "remarks": "Requests that fail due to timing out can be resubmitted as needed.",
9290
10248
  "stability": "experimental",
9291
- "summary": "The maximum number of instances that are allowed in the specified fleet location."
10249
+ "summary": "The maximum duration, that a matchmaking ticket can remain in process before timing out."
9292
10250
  },
9293
10251
  "immutable": true,
9294
10252
  "locationInModule": {
9295
- "filename": "lib/fleet-base.ts",
9296
- "line": 29
10253
+ "filename": "lib/matchmaking-configuration.ts",
10254
+ "line": 183
9297
10255
  },
9298
- "name": "maxSize",
10256
+ "name": "requestTimeout",
9299
10257
  "optional": true,
9300
10258
  "type": {
9301
- "primitive": "number"
10259
+ "fqn": "aws-cdk-lib.Duration"
9302
10260
  }
9303
10261
  },
9304
10262
  {
9305
10263
  "abstract": true,
9306
10264
  "docs": {
9307
- "default": "the default value is 0",
10265
+ "default": "Acceptance is not required",
10266
+ "remarks": "With this option enabled, matchmaking tickets use the status `REQUIRES_ACCEPTANCE` to indicate when a completed potential match is waiting for player acceptance.",
9308
10267
  "stability": "experimental",
9309
- "summary": "The minimum number of instances that are allowed in the specified fleet location."
10268
+ "summary": "A flag that determines whether a match that was created with this configuration must be accepted by the matched players."
9310
10269
  },
9311
10270
  "immutable": true,
9312
10271
  "locationInModule": {
9313
- "filename": "lib/fleet-base.ts",
9314
- "line": 35
10272
+ "filename": "lib/matchmaking-configuration.ts",
10273
+ "line": 152
9315
10274
  },
9316
- "name": "minSize",
10275
+ "name": "requireAcceptance",
9317
10276
  "optional": true,
9318
10277
  "type": {
9319
- "primitive": "number"
10278
+ "primitive": "boolean"
9320
10279
  }
9321
10280
  }
9322
10281
  ],
9323
- "symbolId": "lib/fleet-base:LocationCapacity"
10282
+ "symbolId": "lib/matchmaking-configuration:MatchmakingConfigurationProps"
9324
10283
  },
9325
10284
  "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSet": {
9326
10285
  "assembly": "@aws-cdk/aws-gamelift-alpha",
@@ -10321,81 +11280,413 @@
10321
11280
  "assembly": "@aws-cdk/aws-gamelift-alpha",
10322
11281
  "docs": {
10323
11282
  "stability": "experimental",
10324
- "summary": "Priority to condider when placing new game sessions.",
10325
- "example": "declare const fleet: gamelift.BuildFleet;\ndeclare const topic: sns.Topic;\n\nnew gamelift.GameSessionQueue(this, 'MyGameSessionQueue', {\n gameSessionQueueName: 'test-gameSessionQueue',\n customEventData: 'test-event-data',\n allowedLocations: ['eu-west-1', 'eu-west-2'],\n destinations: [fleet],\n notificationTarget: topic,\n playerLatencyPolicies: [{\n maximumIndividualPlayerLatency: Duration.millis(100),\n policyDuration: Duration.seconds(300),\n }],\n priorityConfiguration: {\n locationOrder: [\n 'eu-west-1',\n 'eu-west-2',\n ],\n priorityOrder: [\n gamelift.PriorityType.LATENCY,\n gamelift.PriorityType.COST,\n gamelift.PriorityType.DESTINATION,\n gamelift.PriorityType.LOCATION,\n ],\n },\n timeout: Duration.seconds(300),\n });",
11283
+ "summary": "Priority to condider when placing new game sessions.",
11284
+ "example": "declare const fleet: gamelift.BuildFleet;\ndeclare const topic: sns.Topic;\n\nnew gamelift.GameSessionQueue(this, 'MyGameSessionQueue', {\n gameSessionQueueName: 'test-gameSessionQueue',\n customEventData: 'test-event-data',\n allowedLocations: ['eu-west-1', 'eu-west-2'],\n destinations: [fleet],\n notificationTarget: topic,\n playerLatencyPolicies: [{\n maximumIndividualPlayerLatency: Duration.millis(100),\n policyDuration: Duration.seconds(300),\n }],\n priorityConfiguration: {\n locationOrder: [\n 'eu-west-1',\n 'eu-west-2',\n ],\n priorityOrder: [\n gamelift.PriorityType.LATENCY,\n gamelift.PriorityType.COST,\n gamelift.PriorityType.DESTINATION,\n gamelift.PriorityType.LOCATION,\n ],\n },\n timeout: Duration.seconds(300),\n });",
11285
+ "custom": {
11286
+ "exampleMetadata": "infused"
11287
+ }
11288
+ },
11289
+ "fqn": "@aws-cdk/aws-gamelift-alpha.PriorityType",
11290
+ "kind": "enum",
11291
+ "locationInModule": {
11292
+ "filename": "lib/game-session-queue.ts",
11293
+ "line": 23
11294
+ },
11295
+ "members": [
11296
+ {
11297
+ "docs": {
11298
+ "stability": "experimental",
11299
+ "summary": "FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest."
11300
+ },
11301
+ "name": "LATENCY"
11302
+ },
11303
+ {
11304
+ "docs": {
11305
+ "remarks": "Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.",
11306
+ "stability": "experimental",
11307
+ "summary": "FleetIQ prioritizes destinations with the lowest current hosting costs."
11308
+ },
11309
+ "name": "COST"
11310
+ },
11311
+ {
11312
+ "docs": {
11313
+ "stability": "experimental",
11314
+ "summary": "FleetIQ prioritizes based on the order that destinations are listed in the queue configuration."
11315
+ },
11316
+ "name": "DESTINATION"
11317
+ },
11318
+ {
11319
+ "docs": {
11320
+ "stability": "experimental",
11321
+ "summary": "FleetIQ prioritizes based on the provided order of locations, as defined in `LocationOrder`."
11322
+ },
11323
+ "name": "LOCATION"
11324
+ }
11325
+ ],
11326
+ "name": "PriorityType",
11327
+ "symbolId": "lib/game-session-queue:PriorityType"
11328
+ },
11329
+ "@aws-cdk/aws-gamelift-alpha.Protocol": {
11330
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
11331
+ "docs": {
11332
+ "remarks": "https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml",
11333
+ "stability": "experimental",
11334
+ "summary": "Protocol for use in Connection Rules."
11335
+ },
11336
+ "fqn": "@aws-cdk/aws-gamelift-alpha.Protocol",
11337
+ "kind": "enum",
11338
+ "locationInModule": {
11339
+ "filename": "lib/ingress-rule.ts",
11340
+ "line": 8
11341
+ },
11342
+ "members": [
11343
+ {
11344
+ "docs": {
11345
+ "stability": "experimental"
11346
+ },
11347
+ "name": "TCP"
11348
+ },
11349
+ {
11350
+ "docs": {
11351
+ "stability": "experimental"
11352
+ },
11353
+ "name": "UDP"
11354
+ }
11355
+ ],
11356
+ "name": "Protocol",
11357
+ "symbolId": "lib/ingress-rule:Protocol"
11358
+ },
11359
+ "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration": {
11360
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
11361
+ "base": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
11362
+ "docs": {
11363
+ "custom": {
11364
+ "resource": "AWS::GameLift::MatchmakingConfiguration",
11365
+ "exampleMetadata": "infused"
11366
+ },
11367
+ "remarks": "It manages the pool of matchmaking requests received, forms teams for a match, processes and selects players to find the best possible player groups, and initiates the process of placing and starting a game session for the match.\nThis topic describes the key aspects of a matchmaker and how to configure one customized for your game.",
11368
+ "see": "https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html",
11369
+ "stability": "experimental",
11370
+ "summary": "A FlexMatch matchmaker process does the work of building a game match.",
11371
+ "example": "declare const queue: gamelift.GameSessionQueue;\ndeclare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.QueuedMatchmakingConfiguration(this, 'QueuedMatchmakingConfiguration', {\n matchmakingConfigurationName: 'test-queued-config-name',\n gameSessionQueues: [queue],\n ruleSet: ruleSet,\n});"
11372
+ },
11373
+ "fqn": "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration",
11374
+ "initializer": {
11375
+ "docs": {
11376
+ "stability": "experimental"
11377
+ },
11378
+ "locationInModule": {
11379
+ "filename": "lib/queued-matchmaking-configuration.ts",
11380
+ "line": 103
11381
+ },
11382
+ "parameters": [
11383
+ {
11384
+ "name": "scope",
11385
+ "type": {
11386
+ "fqn": "constructs.Construct"
11387
+ }
11388
+ },
11389
+ {
11390
+ "name": "id",
11391
+ "type": {
11392
+ "primitive": "string"
11393
+ }
11394
+ },
11395
+ {
11396
+ "name": "props",
11397
+ "type": {
11398
+ "fqn": "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps"
11399
+ }
11400
+ }
11401
+ ]
11402
+ },
11403
+ "kind": "class",
11404
+ "locationInModule": {
11405
+ "filename": "lib/queued-matchmaking-configuration.ts",
11406
+ "line": 69
11407
+ },
11408
+ "methods": [
11409
+ {
11410
+ "docs": {
11411
+ "stability": "experimental",
11412
+ "summary": "Import an existing matchmaking configuration from its ARN."
11413
+ },
11414
+ "locationInModule": {
11415
+ "filename": "lib/queued-matchmaking-configuration.ts",
11416
+ "line": 81
11417
+ },
11418
+ "name": "fromQueuedMatchmakingConfigurationArn",
11419
+ "parameters": [
11420
+ {
11421
+ "name": "scope",
11422
+ "type": {
11423
+ "fqn": "constructs.Construct"
11424
+ }
11425
+ },
11426
+ {
11427
+ "name": "id",
11428
+ "type": {
11429
+ "primitive": "string"
11430
+ }
11431
+ },
11432
+ {
11433
+ "name": "matchmakingConfigurationArn",
11434
+ "type": {
11435
+ "primitive": "string"
11436
+ }
11437
+ }
11438
+ ],
11439
+ "returns": {
11440
+ "type": {
11441
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
11442
+ }
11443
+ },
11444
+ "static": true
11445
+ },
11446
+ {
11447
+ "docs": {
11448
+ "stability": "experimental",
11449
+ "summary": "Import an existing matchmaking configuration from its name."
11450
+ },
11451
+ "locationInModule": {
11452
+ "filename": "lib/queued-matchmaking-configuration.ts",
11453
+ "line": 74
11454
+ },
11455
+ "name": "fromQueuedMatchmakingConfigurationName",
11456
+ "parameters": [
11457
+ {
11458
+ "name": "scope",
11459
+ "type": {
11460
+ "fqn": "constructs.Construct"
11461
+ }
11462
+ },
11463
+ {
11464
+ "name": "id",
11465
+ "type": {
11466
+ "primitive": "string"
11467
+ }
11468
+ },
11469
+ {
11470
+ "name": "matchmakingConfigurationName",
11471
+ "type": {
11472
+ "primitive": "string"
11473
+ }
11474
+ }
11475
+ ],
11476
+ "returns": {
11477
+ "type": {
11478
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
11479
+ }
11480
+ },
11481
+ "static": true
11482
+ },
11483
+ {
11484
+ "docs": {
11485
+ "stability": "experimental",
11486
+ "summary": "Adds a game session queue destination to the matchmaking configuration."
11487
+ },
11488
+ "locationInModule": {
11489
+ "filename": "lib/queued-matchmaking-configuration.ts",
11490
+ "line": 193
11491
+ },
11492
+ "name": "addGameSessionQueue",
11493
+ "parameters": [
11494
+ {
11495
+ "docs": {
11496
+ "summary": "A game session queue."
11497
+ },
11498
+ "name": "gameSessionQueue",
11499
+ "type": {
11500
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IGameSessionQueue"
11501
+ }
11502
+ }
11503
+ ]
11504
+ }
11505
+ ],
11506
+ "name": "QueuedMatchmakingConfiguration",
11507
+ "properties": [
11508
+ {
11509
+ "docs": {
11510
+ "stability": "experimental",
11511
+ "summary": "The ARN of the matchmaking configuration."
11512
+ },
11513
+ "immutable": true,
11514
+ "locationInModule": {
11515
+ "filename": "lib/queued-matchmaking-configuration.ts",
11516
+ "line": 92
11517
+ },
11518
+ "name": "matchmakingConfigurationArn",
11519
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
11520
+ "type": {
11521
+ "primitive": "string"
11522
+ }
11523
+ },
11524
+ {
11525
+ "docs": {
11526
+ "stability": "experimental",
11527
+ "summary": "The name of the matchmaking configuration."
11528
+ },
11529
+ "immutable": true,
11530
+ "locationInModule": {
11531
+ "filename": "lib/queued-matchmaking-configuration.ts",
11532
+ "line": 88
11533
+ },
11534
+ "name": "matchmakingConfigurationName",
11535
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
11536
+ "type": {
11537
+ "primitive": "string"
11538
+ }
11539
+ },
11540
+ {
11541
+ "docs": {
11542
+ "stability": "experimental",
11543
+ "summary": "The notification target for matchmaking events."
11544
+ },
11545
+ "immutable": true,
11546
+ "locationInModule": {
11547
+ "filename": "lib/queued-matchmaking-configuration.ts",
11548
+ "line": 96
11549
+ },
11550
+ "name": "notificationTarget",
11551
+ "optional": true,
11552
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
11553
+ "type": {
11554
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
11555
+ }
11556
+ }
11557
+ ],
11558
+ "symbolId": "lib/queued-matchmaking-configuration:QueuedMatchmakingConfiguration"
11559
+ },
11560
+ "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps": {
11561
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
11562
+ "datatype": true,
11563
+ "docs": {
11564
+ "stability": "experimental",
11565
+ "summary": "Properties for a new queued matchmaking configuration.",
11566
+ "example": "declare const queue: gamelift.GameSessionQueue;\ndeclare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.QueuedMatchmakingConfiguration(this, 'QueuedMatchmakingConfiguration', {\n matchmakingConfigurationName: 'test-queued-config-name',\n gameSessionQueues: [queue],\n ruleSet: ruleSet,\n});",
10326
11567
  "custom": {
10327
11568
  "exampleMetadata": "infused"
10328
11569
  }
10329
11570
  },
10330
- "fqn": "@aws-cdk/aws-gamelift-alpha.PriorityType",
10331
- "kind": "enum",
11571
+ "fqn": "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfigurationProps",
11572
+ "interfaces": [
11573
+ "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationProps"
11574
+ ],
11575
+ "kind": "interface",
10332
11576
  "locationInModule": {
10333
- "filename": "lib/game-session-queue.ts",
10334
- "line": 23
11577
+ "filename": "lib/queued-matchmaking-configuration.ts",
11578
+ "line": 12
10335
11579
  },
10336
- "members": [
11580
+ "name": "QueuedMatchmakingConfigurationProps",
11581
+ "properties": [
10337
11582
  {
11583
+ "abstract": true,
10338
11584
  "docs": {
11585
+ "remarks": "Queues can be located in any Region.",
10339
11586
  "stability": "experimental",
10340
- "summary": "FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest."
11587
+ "summary": "Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration."
10341
11588
  },
10342
- "name": "LATENCY"
11589
+ "immutable": true,
11590
+ "locationInModule": {
11591
+ "filename": "lib/queued-matchmaking-configuration.ts",
11592
+ "line": 57
11593
+ },
11594
+ "name": "gameSessionQueues",
11595
+ "type": {
11596
+ "collection": {
11597
+ "elementtype": {
11598
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IGameSessionQueue"
11599
+ },
11600
+ "kind": "array"
11601
+ }
11602
+ }
10343
11603
  },
10344
11604
  {
11605
+ "abstract": true,
10345
11606
  "docs": {
10346
- "remarks": "Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.",
11607
+ "default": "no additional player slots",
11608
+ "remarks": "For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match.",
10347
11609
  "stability": "experimental",
10348
- "summary": "FleetIQ prioritizes destinations with the lowest current hosting costs."
11610
+ "summary": "The number of player slots in a match to keep open for future players."
10349
11611
  },
10350
- "name": "COST"
11612
+ "immutable": true,
11613
+ "locationInModule": {
11614
+ "filename": "lib/queued-matchmaking-configuration.ts",
11615
+ "line": 19
11616
+ },
11617
+ "name": "additionalPlayerCount",
11618
+ "optional": true,
11619
+ "type": {
11620
+ "primitive": "number"
11621
+ }
10351
11622
  },
10352
11623
  {
11624
+ "abstract": true,
10353
11625
  "docs": {
11626
+ "default": "no additional game properties",
11627
+ "remarks": "These properties are passed to a game server process with a request to start a new game session.",
11628
+ "see": "https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession",
10354
11629
  "stability": "experimental",
10355
- "summary": "FleetIQ prioritizes based on the order that destinations are listed in the queue configuration."
11630
+ "summary": "A set of custom properties for a game session, formatted as key-value pairs."
10356
11631
  },
10357
- "name": "DESTINATION"
11632
+ "immutable": true,
11633
+ "locationInModule": {
11634
+ "filename": "lib/queued-matchmaking-configuration.ts",
11635
+ "line": 40
11636
+ },
11637
+ "name": "gameProperties",
11638
+ "optional": true,
11639
+ "type": {
11640
+ "collection": {
11641
+ "elementtype": {
11642
+ "fqn": "@aws-cdk/aws-gamelift-alpha.GameProperty"
11643
+ },
11644
+ "kind": "array"
11645
+ }
11646
+ }
10358
11647
  },
10359
11648
  {
11649
+ "abstract": true,
10360
11650
  "docs": {
11651
+ "default": "no additional game session data",
11652
+ "remarks": "This data is passed to a game server process with a request to start a new game session.",
11653
+ "see": "https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession",
10361
11654
  "stability": "experimental",
10362
- "summary": "FleetIQ prioritizes based on the provided order of locations, as defined in `LocationOrder`."
11655
+ "summary": "A set of custom game session properties, formatted as a single string value."
10363
11656
  },
10364
- "name": "LOCATION"
10365
- }
10366
- ],
10367
- "name": "PriorityType",
10368
- "symbolId": "lib/game-session-queue:PriorityType"
10369
- },
10370
- "@aws-cdk/aws-gamelift-alpha.Protocol": {
10371
- "assembly": "@aws-cdk/aws-gamelift-alpha",
10372
- "docs": {
10373
- "remarks": "https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml",
10374
- "stability": "experimental",
10375
- "summary": "Protocol for use in Connection Rules."
10376
- },
10377
- "fqn": "@aws-cdk/aws-gamelift-alpha.Protocol",
10378
- "kind": "enum",
10379
- "locationInModule": {
10380
- "filename": "lib/ingress-rule.ts",
10381
- "line": 8
10382
- },
10383
- "members": [
10384
- {
10385
- "docs": {
10386
- "stability": "experimental"
11657
+ "immutable": true,
11658
+ "locationInModule": {
11659
+ "filename": "lib/queued-matchmaking-configuration.ts",
11660
+ "line": 50
10387
11661
  },
10388
- "name": "TCP"
11662
+ "name": "gameSessionData",
11663
+ "optional": true,
11664
+ "type": {
11665
+ "primitive": "string"
11666
+ }
10389
11667
  },
10390
11668
  {
11669
+ "abstract": true,
10391
11670
  "docs": {
10392
- "stability": "experimental"
11671
+ "default": "automatic backfill mode",
11672
+ "remarks": "- Choose manual when your game manages backfill requests manually or does not use the match backfill feature.\n- Otherwise backfill is settled to automatic to have GameLift create a `StartMatchBackfill` request whenever a game session has one or more open slots.",
11673
+ "see": "https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html",
11674
+ "stability": "experimental",
11675
+ "summary": "The method used to backfill game sessions that are created with this matchmaking configuration."
10393
11676
  },
10394
- "name": "UDP"
11677
+ "immutable": true,
11678
+ "locationInModule": {
11679
+ "filename": "lib/queued-matchmaking-configuration.ts",
11680
+ "line": 30
11681
+ },
11682
+ "name": "manualBackfillMode",
11683
+ "optional": true,
11684
+ "type": {
11685
+ "primitive": "boolean"
11686
+ }
10395
11687
  }
10396
11688
  ],
10397
- "name": "Protocol",
10398
- "symbolId": "lib/ingress-rule:Protocol"
11689
+ "symbolId": "lib/queued-matchmaking-configuration:QueuedMatchmakingConfigurationProps"
10399
11690
  },
10400
11691
  "@aws-cdk/aws-gamelift-alpha.ResourceCreationLimitPolicy": {
10401
11692
  "assembly": "@aws-cdk/aws-gamelift-alpha",
@@ -11461,8 +12752,210 @@
11461
12752
  }
11462
12753
  ],
11463
12754
  "symbolId": "lib/fleet-base:ServerProcess"
12755
+ },
12756
+ "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfiguration": {
12757
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
12758
+ "base": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
12759
+ "docs": {
12760
+ "custom": {
12761
+ "resource": "AWS::GameLift::MatchmakingConfiguration",
12762
+ "exampleMetadata": "infused"
12763
+ },
12764
+ "remarks": "It manages the pool of matchmaking requests received, forms teams for a match, processes and selects players to find the best possible player groups, and initiates the process of placing and starting a game session for the match.\nThis topic describes the key aspects of a matchmaker and how to configure one customized for your game.",
12765
+ "see": "https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html",
12766
+ "stability": "experimental",
12767
+ "summary": "A FlexMatch matchmaker process does the work of building a game match.",
12768
+ "example": "declare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.StandaloneMatchmakingConfiguration(this, 'StandaloneMatchmaking', {\n matchmakingConfigurationName: 'test-standalone-config-name',\n ruleSet: ruleSet,\n});"
12769
+ },
12770
+ "fqn": "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfiguration",
12771
+ "initializer": {
12772
+ "docs": {
12773
+ "stability": "experimental"
12774
+ },
12775
+ "locationInModule": {
12776
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12777
+ "line": 51
12778
+ },
12779
+ "parameters": [
12780
+ {
12781
+ "name": "scope",
12782
+ "type": {
12783
+ "fqn": "constructs.Construct"
12784
+ }
12785
+ },
12786
+ {
12787
+ "name": "id",
12788
+ "type": {
12789
+ "primitive": "string"
12790
+ }
12791
+ },
12792
+ {
12793
+ "name": "props",
12794
+ "type": {
12795
+ "fqn": "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfigurationProps"
12796
+ }
12797
+ }
12798
+ ]
12799
+ },
12800
+ "kind": "class",
12801
+ "locationInModule": {
12802
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12803
+ "line": 22
12804
+ },
12805
+ "methods": [
12806
+ {
12807
+ "docs": {
12808
+ "stability": "experimental",
12809
+ "summary": "Import an existing matchmaking configuration from its ARN."
12810
+ },
12811
+ "locationInModule": {
12812
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12813
+ "line": 34
12814
+ },
12815
+ "name": "fromStandaloneMatchmakingConfigurationArn",
12816
+ "parameters": [
12817
+ {
12818
+ "name": "scope",
12819
+ "type": {
12820
+ "fqn": "constructs.Construct"
12821
+ }
12822
+ },
12823
+ {
12824
+ "name": "id",
12825
+ "type": {
12826
+ "primitive": "string"
12827
+ }
12828
+ },
12829
+ {
12830
+ "name": "matchmakingConfigurationArn",
12831
+ "type": {
12832
+ "primitive": "string"
12833
+ }
12834
+ }
12835
+ ],
12836
+ "returns": {
12837
+ "type": {
12838
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
12839
+ }
12840
+ },
12841
+ "static": true
12842
+ },
12843
+ {
12844
+ "docs": {
12845
+ "stability": "experimental",
12846
+ "summary": "Import an existing matchmaking configuration from its name."
12847
+ },
12848
+ "locationInModule": {
12849
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12850
+ "line": 27
12851
+ },
12852
+ "name": "fromStandaloneMatchmakingConfigurationName",
12853
+ "parameters": [
12854
+ {
12855
+ "name": "scope",
12856
+ "type": {
12857
+ "fqn": "constructs.Construct"
12858
+ }
12859
+ },
12860
+ {
12861
+ "name": "id",
12862
+ "type": {
12863
+ "primitive": "string"
12864
+ }
12865
+ },
12866
+ {
12867
+ "name": "matchmakingConfigurationName",
12868
+ "type": {
12869
+ "primitive": "string"
12870
+ }
12871
+ }
12872
+ ],
12873
+ "returns": {
12874
+ "type": {
12875
+ "fqn": "@aws-cdk/aws-gamelift-alpha.IMatchmakingConfiguration"
12876
+ }
12877
+ },
12878
+ "static": true
12879
+ }
12880
+ ],
12881
+ "name": "StandaloneMatchmakingConfiguration",
12882
+ "properties": [
12883
+ {
12884
+ "docs": {
12885
+ "stability": "experimental",
12886
+ "summary": "The ARN of the matchmaking configuration."
12887
+ },
12888
+ "immutable": true,
12889
+ "locationInModule": {
12890
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12891
+ "line": 45
12892
+ },
12893
+ "name": "matchmakingConfigurationArn",
12894
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
12895
+ "type": {
12896
+ "primitive": "string"
12897
+ }
12898
+ },
12899
+ {
12900
+ "docs": {
12901
+ "stability": "experimental",
12902
+ "summary": "The Identifier of the matchmaking configuration."
12903
+ },
12904
+ "immutable": true,
12905
+ "locationInModule": {
12906
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12907
+ "line": 41
12908
+ },
12909
+ "name": "matchmakingConfigurationName",
12910
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
12911
+ "type": {
12912
+ "primitive": "string"
12913
+ }
12914
+ },
12915
+ {
12916
+ "docs": {
12917
+ "stability": "experimental",
12918
+ "summary": "The notification target for matchmaking events."
12919
+ },
12920
+ "immutable": true,
12921
+ "locationInModule": {
12922
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12923
+ "line": 49
12924
+ },
12925
+ "name": "notificationTarget",
12926
+ "optional": true,
12927
+ "overrides": "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase",
12928
+ "type": {
12929
+ "fqn": "aws-cdk-lib.aws_sns.ITopic"
12930
+ }
12931
+ }
12932
+ ],
12933
+ "symbolId": "lib/standalone-matchmaking-configuration:StandaloneMatchmakingConfiguration"
12934
+ },
12935
+ "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfigurationProps": {
12936
+ "assembly": "@aws-cdk/aws-gamelift-alpha",
12937
+ "datatype": true,
12938
+ "docs": {
12939
+ "stability": "experimental",
12940
+ "summary": "Properties for a new standalone matchmaking configuration.",
12941
+ "example": "declare const ruleSet: gamelift.MatchmakingRuleSet;\n\nnew gamelift.StandaloneMatchmakingConfiguration(this, 'StandaloneMatchmaking', {\n matchmakingConfigurationName: 'test-standalone-config-name',\n ruleSet: ruleSet,\n});",
12942
+ "custom": {
12943
+ "exampleMetadata": "infused"
12944
+ }
12945
+ },
12946
+ "fqn": "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfigurationProps",
12947
+ "interfaces": [
12948
+ "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationProps"
12949
+ ],
12950
+ "kind": "interface",
12951
+ "locationInModule": {
12952
+ "filename": "lib/standalone-matchmaking-configuration.ts",
12953
+ "line": 11
12954
+ },
12955
+ "name": "StandaloneMatchmakingConfigurationProps",
12956
+ "symbolId": "lib/standalone-matchmaking-configuration:StandaloneMatchmakingConfigurationProps"
11464
12957
  }
11465
12958
  },
11466
- "version": "2.59.0-alpha.0",
12959
+ "version": "2.60.0-alpha.0",
11467
12960
  "fingerprint": "**********"
11468
12961
  }