@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.
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.QueuedMatchmakingConfiguration = void 0;
5
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ const iam = require("aws-cdk-lib/aws-iam");
8
+ const sns = require("aws-cdk-lib/aws-sns");
9
+ const cdk = require("aws-cdk-lib");
10
+ const gamelift = require("aws-cdk-lib/aws-gamelift");
11
+ const matchmaking_configuration_1 = require("./matchmaking-configuration");
12
+ /**
13
+ * A FlexMatch matchmaker process does the work of building a game match.
14
+ * 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.
15
+ * This topic describes the key aspects of a matchmaker and how to configure one customized for your game.
16
+ *
17
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html
18
+ *
19
+ * @resource AWS::GameLift::MatchmakingConfiguration
20
+ */
21
+ class QueuedMatchmakingConfiguration extends matchmaking_configuration_1.MatchmakingConfigurationBase {
22
+ constructor(scope, id, props) {
23
+ super(scope, id, {
24
+ physicalName: props.matchmakingConfigurationName,
25
+ });
26
+ /**
27
+ * A list of game session queue destinations
28
+ */
29
+ this.gameSessionQueues = [];
30
+ try {
31
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_QueuedMatchmakingConfigurationProps(props);
32
+ }
33
+ catch (error) {
34
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
35
+ Error.captureStackTrace(error, QueuedMatchmakingConfiguration);
36
+ }
37
+ throw error;
38
+ }
39
+ if (props.matchmakingConfigurationName && !cdk.Token.isUnresolved(props.matchmakingConfigurationName)) {
40
+ if (props.matchmakingConfigurationName.length > 128) {
41
+ throw new Error(`Matchmaking configuration name can not be longer than 128 characters but has ${props.matchmakingConfigurationName.length} characters.`);
42
+ }
43
+ if (!/^[a-zA-Z0-9-\.]+$/.test(props.matchmakingConfigurationName)) {
44
+ throw new Error(`Matchmaking configuration name ${props.matchmakingConfigurationName} can contain only letters, numbers, hyphens, back slash or dot with no spaces.`);
45
+ }
46
+ }
47
+ if (props.description && !cdk.Token.isUnresolved(props.description)) {
48
+ if (props.description.length > 1024) {
49
+ throw new Error(`Matchmaking configuration description can not be longer than 1024 characters but has ${props.description.length} characters.`);
50
+ }
51
+ }
52
+ if (props.gameProperties && props.gameProperties.length > 16) {
53
+ throw new Error(`The maximum number of game properties allowed in the matchmaking configuration cannot be higher than 16, given ${props.gameProperties.length}`);
54
+ }
55
+ if (props.gameSessionData && props.gameSessionData.length > 4096) {
56
+ throw new Error(`Matchmaking configuration game session data can not be longer than 4096 characters but has ${props.gameSessionData.length} characters.`);
57
+ }
58
+ if (props.customEventData && props.customEventData.length > 256) {
59
+ throw new Error(`Matchmaking configuration custom event data can not be longer than 256 characters but has ${props.customEventData.length} characters.`);
60
+ }
61
+ if (props.acceptanceTimeout && props.acceptanceTimeout.toSeconds() > 600) {
62
+ throw new Error(`Matchmaking configuration acceptance timeout can not exceed 600 seconds, actual ${props.acceptanceTimeout.toSeconds()} seconds.`);
63
+ }
64
+ if (props.requestTimeout && props.requestTimeout.toSeconds() > 43200) {
65
+ throw new Error(`Matchmaking configuration request timeout can not exceed 43200 seconds, actual ${props.requestTimeout.toSeconds()} seconds.`);
66
+ }
67
+ //Notification target
68
+ this.notificationTarget = props.notificationTarget;
69
+ if (!this.notificationTarget) {
70
+ this.notificationTarget = new sns.Topic(this, 'Topic', {});
71
+ }
72
+ // Be sure to add the right TopicPolicy to enable gamelift publish action to given topic
73
+ const topicPolicy = new sns.TopicPolicy(this, 'TopicPolicy', {
74
+ topics: [this.notificationTarget],
75
+ });
76
+ topicPolicy.document.addStatements(new iam.PolicyStatement({
77
+ actions: ['sns:Publish'],
78
+ principals: [new iam.ServicePrincipal('gamelift.amazonaws.com')],
79
+ resources: [this.notificationTarget.topicArn],
80
+ }));
81
+ // Add all queues
82
+ (props.gameSessionQueues || []).forEach(this.addGameSessionQueue.bind(this));
83
+ const resource = new gamelift.CfnMatchmakingConfiguration(this, 'Resource', {
84
+ name: this.physicalName,
85
+ acceptanceRequired: Boolean(props.requireAcceptance),
86
+ acceptanceTimeoutSeconds: props.acceptanceTimeout && props.acceptanceTimeout.toSeconds(),
87
+ additionalPlayerCount: props.additionalPlayerCount,
88
+ backfillMode: props.manualBackfillMode ? 'MANUAL' : 'AUTOMATIC',
89
+ customEventData: props.customEventData,
90
+ description: props.description,
91
+ flexMatchMode: 'WITH_QUEUE',
92
+ gameProperties: this.parseGameProperties(props),
93
+ gameSessionData: props.gameSessionData,
94
+ gameSessionQueueArns: cdk.Lazy.list({ produce: () => this.parseGameSessionQueues() }),
95
+ notificationTarget: this.notificationTarget.topicArn,
96
+ requestTimeoutSeconds: props.requestTimeout && props.requestTimeout.toSeconds() || cdk.Duration.seconds(300).toSeconds(),
97
+ ruleSetName: props.ruleSet.matchmakingRuleSetName,
98
+ });
99
+ this.matchmakingConfigurationName = this.getResourceNameAttribute(resource.ref);
100
+ this.matchmakingConfigurationArn = cdk.Stack.of(scope).formatArn({
101
+ service: 'gamelift',
102
+ resource: 'matchmakingconfiguration',
103
+ resourceName: this.matchmakingConfigurationName,
104
+ arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
105
+ });
106
+ }
107
+ /**
108
+ * Import an existing matchmaking configuration from its name.
109
+ */
110
+ static fromQueuedMatchmakingConfigurationName(scope, id, matchmakingConfigurationName) {
111
+ return this.fromMatchmakingConfigurationAttributes(scope, id, { matchmakingConfigurationName: matchmakingConfigurationName });
112
+ }
113
+ /**
114
+ * Import an existing matchmaking configuration from its ARN.
115
+ */
116
+ static fromQueuedMatchmakingConfigurationArn(scope, id, matchmakingConfigurationArn) {
117
+ return this.fromMatchmakingConfigurationAttributes(scope, id, { matchmakingConfigurationArn: matchmakingConfigurationArn });
118
+ }
119
+ /**
120
+ * Adds a game session queue destination to the matchmaking configuration.
121
+ *
122
+ * @param gameSessionQueue A game session queue
123
+ */
124
+ addGameSessionQueue(gameSessionQueue) {
125
+ try {
126
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_IGameSessionQueue(gameSessionQueue);
127
+ }
128
+ catch (error) {
129
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
130
+ Error.captureStackTrace(error, this.addGameSessionQueue);
131
+ }
132
+ throw error;
133
+ }
134
+ this.gameSessionQueues.push(gameSessionQueue);
135
+ }
136
+ parseGameSessionQueues() {
137
+ if (!this.gameSessionQueues || this.gameSessionQueues.length === 0) {
138
+ return undefined;
139
+ }
140
+ return this.gameSessionQueues.map((queue) => queue.gameSessionQueueArn);
141
+ }
142
+ parseGameProperties(props) {
143
+ if (!props.gameProperties || props.gameProperties.length === 0) {
144
+ return undefined;
145
+ }
146
+ return props.gameProperties.map(parseGameProperty);
147
+ function parseGameProperty(gameProperty) {
148
+ return {
149
+ key: gameProperty.key,
150
+ value: gameProperty.value,
151
+ };
152
+ }
153
+ }
154
+ }
155
+ exports.QueuedMatchmakingConfiguration = QueuedMatchmakingConfiguration;
156
+ _a = JSII_RTTI_SYMBOL_1;
157
+ QueuedMatchmakingConfiguration[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.QueuedMatchmakingConfiguration", version: "2.60.0-alpha.0" };
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVkLW1hdGNobWFraW5nLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWV1ZWQtbWF0Y2htYWtpbmctY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUduQyxxREFBcUQ7QUFDckQsMkVBQW1KO0FBcURuSjs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsOEJBQStCLFNBQVEsd0RBQTRCO0lBa0M5RSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBDO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyw0QkFBNEI7U0FDakQsQ0FBQyxDQUFDO1FBUkw7O1dBRUc7UUFDYyxzQkFBaUIsR0FBd0IsRUFBRSxDQUFDOzs7Ozs7K0NBaENsRCw4QkFBOEI7Ozs7UUF1Q3ZDLElBQUksS0FBSyxDQUFDLDRCQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDckcsSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsS0FBSyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7YUFDMUo7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFO2dCQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxLQUFLLENBQUMsNEJBQTRCLGdGQUFnRixDQUFDLENBQUM7YUFDdks7U0FDRjtRQUVELElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxX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MEI7WUFDbkQsT0FBTztnQkFDTCxHQUFHLEVBQUUsWUFBWSxDQUFDLEdBQUc7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSzthQUMxQixDQUFDO1FBQ0osQ0FBQztLQUNGOztBQXJKSCx3RUF1SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJR2FtZVNlc3Npb25RdWV1ZSB9IGZyb20gJy4vZ2FtZS1zZXNzaW9uLXF1ZXVlJztcbmltcG9ydCAqIGFzIGdhbWVsaWZ0IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdCc7XG5pbXBvcnQgeyBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Qcm9wcywgR2FtZVByb3BlcnR5LCBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25CYXNlLCBJTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tYXRjaG1ha2luZy1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBxdWV1ZWQgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXVlZE1hdGNobWFraW5nQ29uZmlndXJhdGlvblByb3BzIGV4dGVuZHMgTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uUHJvcHMge1xuLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGxheWVyIHNsb3RzIGluIGEgbWF0Y2ggdG8ga2VlcCBvcGVuIGZvciBmdXR1cmUgcGxheWVycy5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBjb25maWd1cmF0aW9uJ3MgcnVsZSBzZXQgc3BlY2lmaWVzIGEgbWF0Y2ggZm9yIGEgc2luZ2xlIDEyLXBlcnNvbiB0ZWFtLCBhbmQgdGhlIGFkZGl0aW9uYWwgcGxheWVyIGNvdW50IGlzIHNldCB0byAyLCBvbmx5IDEwIHBsYXllcnMgYXJlIHNlbGVjdGVkIGZvciB0aGUgbWF0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGFkZGl0aW9uYWwgcGxheWVyIHNsb3RzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsUGxheWVyQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdXNlZCB0byBiYWNrZmlsbCBnYW1lIHNlc3Npb25zIHRoYXQgYXJlIGNyZWF0ZWQgd2l0aCB0aGlzIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIC0gQ2hvb3NlIG1hbnVhbCB3aGVuIHlvdXIgZ2FtZSBtYW5hZ2VzIGJhY2tmaWxsIHJlcXVlc3RzIG1hbnVhbGx5IG9yIGRvZXMgbm90IHVzZSB0aGUgbWF0Y2ggYmFja2ZpbGwgZmVhdHVyZS5cbiAgICogLSBPdGhlcndpc2UgYmFja2ZpbGwgaXMgc2V0dGxlZCB0byBhdXRvbWF0aWMgdG8gaGF2ZSBHYW1lTGlmdCBjcmVhdGUgYSBgU3RhcnRNYXRjaEJhY2tmaWxsYCByZXF1ZXN0IHdoZW5ldmVyIGEgZ2FtZSBzZXNzaW9uIGhhcyBvbmUgb3IgbW9yZSBvcGVuIHNsb3RzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZmxleG1hdGNoZ3VpZGUvbWF0Y2gtYmFja2ZpbGwuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBhdXRvbWF0aWMgYmFja2ZpbGwgbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgbWFudWFsQmFja2ZpbGxNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgY3VzdG9tIHByb3BlcnRpZXMgZm9yIGEgZ2FtZSBzZXNzaW9uLCBmb3JtYXR0ZWQgYXMga2V5LXZhbHVlIHBhaXJzLlxuICAgKiBUaGVzZSBwcm9wZXJ0aWVzIGFyZSBwYXNzZWQgdG8gYSBnYW1lIHNlcnZlciBwcm9jZXNzIHdpdGggYSByZXF1ZXN0IHRvIHN0YXJ0IGEgbmV3IGdhbWUgc2Vzc2lvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LXNkay1zZXJ2ZXItYXBpLmh0bWwjZ2FtZWxpZnQtc2RrLXNlcnZlci1zdGFydHNlc3Npb25cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gYWRkaXRpb25hbCBnYW1lIHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGdhbWVQcm9wZXJ0aWVzPzogR2FtZVByb3BlcnR5W107XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGN1c3RvbSBnYW1lIHNlc3Npb24gcHJvcGVydGllcywgZm9ybWF0dGVkIGFzIGEgc2luZ2xlIHN0cmluZyB2YWx1ZS5cbiAgICogVGhpcyBkYXRhIGlzIHBhc3NlZCB0byBhIGdhbWUgc2VydmVyIHByb2Nlc3Mgd2l0aCBhIHJlcXVlc3QgdG8gc3RhcnQgYSBuZXcgZ2FtZSBzZXNzaW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtc2RrLXNlcnZlci1hcGkuaHRtbCNnYW1lbGlmdC1zZGstc2VydmVyLXN0YXJ0c2Vzc2lvblxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBhZGRpdGlvbmFsIGdhbWUgc2Vzc2lvbiBkYXRhXG4gICAqL1xuICByZWFkb25seSBnYW1lU2Vzc2lvbkRhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFF1ZXVlcyBhcmUgdXNlZCB0byBzdGFydCBuZXcgR2FtZUxpZnQtaG9zdGVkIGdhbWUgc2Vzc2lvbnMgZm9yIG1hdGNoZXMgdGhhdCBhcmUgY3JlYXRlZCB3aXRoIHRoaXMgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogUXVldWVzIGNhbiBiZSBsb2NhdGVkIGluIGFueSBSZWdpb24uXG4gICAqL1xuICByZWFkb25seSBnYW1lU2Vzc2lvblF1ZXVlczogSUdhbWVTZXNzaW9uUXVldWVbXTtcbn1cblxuLyoqXG4gKiBBIEZsZXhNYXRjaCBtYXRjaG1ha2VyIHByb2Nlc3MgZG9lcyB0aGUgd29yayBvZiBidWlsZGluZyBhIGdhbWUgbWF0Y2guXG4gKiBJdCBtYW5hZ2VzIHRoZSBwb29sIG9mIG1hdGNobWFraW5nIHJlcXVlc3RzIHJlY2VpdmVkLCBmb3JtcyB0ZWFtcyBmb3IgYSBtYXRjaCwgcHJvY2Vzc2VzIGFuZCBzZWxlY3RzIHBsYXllcnMgdG8gZmluZCB0aGUgYmVzdCBwb3NzaWJsZSBwbGF5ZXIgZ3JvdXBzLCBhbmQgaW5pdGlhdGVzIHRoZSBwcm9jZXNzIG9mIHBsYWNpbmcgYW5kIHN0YXJ0aW5nIGEgZ2FtZSBzZXNzaW9uIGZvciB0aGUgbWF0Y2guXG4gKiBUaGlzIHRvcGljIGRlc2NyaWJlcyB0aGUga2V5IGFzcGVjdHMgb2YgYSBtYXRjaG1ha2VyIGFuZCBob3cgdG8gY29uZmlndXJlIG9uZSBjdXN0b21pemVkIGZvciB5b3VyIGdhbWUuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2ZsZXhtYXRjaGd1aWRlL21hdGNoLWNvbmZpZ3VyYXRpb24uaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXVlZE1hdGNobWFraW5nQ29uZmlndXJhdGlvbiBleHRlbmRzIE1hdGNobWFraW5nQ29uZmlndXJhdGlvbkJhc2Uge1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbiBmcm9tIGl0cyBuYW1lLlxuICAgKi9cbiAgc3RhdGljIGZyb21RdWV1ZWRNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWU6IHN0cmluZyk6IElNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLmZyb21NYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25BdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lOiBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGZyb20gaXRzIEFSTi5cbiAgICovXG4gIHN0YXRpYyBmcm9tUXVldWVkTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybjogc3RyaW5nKTogSU1hdGNobWFraW5nQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU1hdGNobWFraW5nQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybjogbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gdGFyZ2V0IGZvciBtYXRjaG1ha2luZyBldmVudHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXQ/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZ2FtZSBzZXNzaW9uIHF1ZXVlIGRlc3RpbmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBnYW1lU2Vzc2lvblF1ZXVlczogSUdhbWVTZXNzaW9uUXVldWVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBRdWV1ZWRNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgJiYgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gbmFtZSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCEvXlthLXpBLVowLTktXFwuXSskLy50ZXN0KHByb3BzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbiBuYW1lICR7cHJvcHMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZX0gY2FuIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBoeXBoZW5zLCBiYWNrIHNsYXNoIG9yIGRvdCB3aXRoIG5vIHNwYWNlcy5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGVzY3JpcHRpb24pKSB7XG4gICAgICBpZiAocHJvcHMuZGVzY3JpcHRpb24ubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRpb24gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMDI0IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmRlc2NyaXB0aW9uLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZ2FtZVByb3BlcnRpZXMgJiYgcHJvcHMuZ2FtZVByb3BlcnRpZXMubGVuZ3RoID4gMTYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIG1heGltdW0gbnVtYmVyIG9mIGdhbWUgcHJvcGVydGllcyBhbGxvd2VkIGluIHRoZSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSBoaWdoZXIgdGhhbiAxNiwgZ2l2ZW4gJHtwcm9wcy5nYW1lUHJvcGVydGllcy5sZW5ndGh9YCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmdhbWVTZXNzaW9uRGF0YSAmJiBwcm9wcy5nYW1lU2Vzc2lvbkRhdGEubGVuZ3RoID4gNDA5Nikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGdhbWUgc2Vzc2lvbiBkYXRhIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gNDA5NiBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5nYW1lU2Vzc2lvbkRhdGEubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5jdXN0b21FdmVudERhdGEgJiYgcHJvcHMuY3VzdG9tRXZlbnREYXRhLmxlbmd0aCA+IDI1Nikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGN1c3RvbSBldmVudCBkYXRhIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjU2IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmN1c3RvbUV2ZW50RGF0YS5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmFjY2VwdGFuY2VUaW1lb3V0ICYmIHByb3BzLmFjY2VwdGFuY2VUaW1lb3V0LnRvU2Vjb25kcygpID4gNjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gYWNjZXB0YW5jZSB0aW1lb3V0IGNhbiBub3QgZXhjZWVkIDYwMCBzZWNvbmRzLCBhY3R1YWwgJHtwcm9wcy5hY2NlcHRhbmNlVGltZW91dC50b1NlY29uZHMoKX0gc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucmVxdWVzdFRpbWVvdXQgJiYgcHJvcHMucmVxdWVzdFRpbWVvdXQudG9TZWNvbmRzKCkgPiA0MzIwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIHJlcXVlc3QgdGltZW91dCBjYW4gbm90IGV4Y2VlZCA0MzIwMCBzZWNvbmRzLCBhY3R1YWwgJHtwcm9wcy5yZXF1ZXN0VGltZW91dC50b1NlY29uZHMoKX0gc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICAvL05vdGlmaWNhdGlvbiB0YXJnZXRcbiAgICB0aGlzLm5vdGlmaWNhdGlvblRhcmdldCA9IHByb3BzLm5vdGlmaWNhdGlvblRhcmdldDtcbiAgICBpZiAoIXRoaXMubm90aWZpY2F0aW9uVGFyZ2V0KSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblRhcmdldCA9IG5ldyBzbnMuVG9waWModGhpcywgJ1RvcGljJywge30pO1xuICAgIH1cbiAgICAvLyBCZSBzdXJlIHRvIGFkZCB0aGUgcmlnaHQgVG9waWNQb2xpY3kgdG8gZW5hYmxlIGdhbWVsaWZ0IHB1Ymxpc2ggYWN0aW9uIHRvIGdpdmVuIHRvcGljXG4gICAgY29uc3QgdG9waWNQb2xpY3kgPSBuZXcgc25zLlRvcGljUG9saWN5KHRoaXMsICdUb3BpY1BvbGljeScsIHtcbiAgICAgIHRvcGljczogW3RoaXMubm90aWZpY2F0aW9uVGFyZ2V0XSxcbiAgICB9KTtcbiAgICB0b3BpY1BvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnRzKG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2dhbWVsaWZ0LmFtYXpvbmF3cy5jb20nKV0sXG4gICAgICByZXNvdXJjZXM6IFt0aGlzLm5vdGlmaWNhdGlvblRhcmdldC50b3BpY0Fybl0sXG4gICAgfSkpO1xuXG4gICAgLy8gQWRkIGFsbCBxdWV1ZXNcbiAgICAocHJvcHMuZ2FtZVNlc3Npb25RdWV1ZXMgfHwgW10pLmZvckVhY2godGhpcy5hZGRHYW1lU2Vzc2lvblF1ZXVlLmJpbmQodGhpcykpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgZ2FtZWxpZnQuQ2ZuTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgYWNjZXB0YW5jZVJlcXVpcmVkOiBCb29sZWFuKHByb3BzLnJlcXVpcmVBY2NlcHRhbmNlKSxcbiAgICAgIGFjY2VwdGFuY2VUaW1lb3V0U2Vjb25kczogcHJvcHMuYWNjZXB0YW5jZVRpbWVvdXQgJiYgcHJvcHMuYWNjZXB0YW5jZVRpbWVvdXQudG9TZWNvbmRzKCksXG4gICAgICBhZGRpdGlvbmFsUGxheWVyQ291bnQ6IHByb3BzLmFkZGl0aW9uYWxQbGF5ZXJDb3VudCxcbiAgICAgIGJhY2tmaWxsTW9kZTogcHJvcHMubWFudWFsQmFja2ZpbGxNb2RlID8gJ01BTlVBTCcgOiAnQVVUT01BVElDJyxcbiAgICAgIGN1c3RvbUV2ZW50RGF0YTogcHJvcHMuY3VzdG9tRXZlbnREYXRhLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgZmxleE1hdGNoTW9kZTogJ1dJVEhfUVVFVUUnLFxuICAgICAgZ2FtZVByb3BlcnRpZXM6IHRoaXMucGFyc2VHYW1lUHJvcGVydGllcyhwcm9wcyksXG4gICAgICBnYW1lU2Vzc2lvbkRhdGE6IHByb3BzLmdhbWVTZXNzaW9uRGF0YSxcbiAgICAgIGdhbWVTZXNzaW9uUXVldWVBcm5zOiBjZGsuTGF6eS5saXN0KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5wYXJzZUdhbWVTZXNzaW9uUXVldWVzKCkgfSksXG4gICAgICBub3RpZmljYXRpb25UYXJnZXQ6IHRoaXMubm90aWZpY2F0aW9uVGFyZ2V0LnRvcGljQXJuLFxuICAgICAgcmVxdWVzdFRpbWVvdXRTZWNvbmRzOiBwcm9wcy5yZXF1ZXN0VGltZW91dCAmJiBwcm9wcy5yZXF1ZXN0VGltZW91dC50b1NlY29uZHMoKSB8fCBjZGsuRHVyYXRpb24uc2Vjb25kcygzMDApLnRvU2Vjb25kcygpLFxuICAgICAgcnVsZVNldE5hbWU6IHByb3BzLnJ1bGVTZXQubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gPSBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2FtZWxpZnQnLFxuICAgICAgcmVzb3VyY2U6ICdtYXRjaG1ha2luZ2NvbmZpZ3VyYXRpb24nLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZ2FtZSBzZXNzaW9uIHF1ZXVlIGRlc3RpbmF0aW9uIHRvIHRoZSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZ2FtZVNlc3Npb25RdWV1ZSBBIGdhbWUgc2Vzc2lvbiBxdWV1ZVxuICAgKi9cbiAgcHVibGljIGFkZEdhbWVTZXNzaW9uUXVldWUoZ2FtZVNlc3Npb25RdWV1ZTogSUdhbWVTZXNzaW9uUXVldWUpIHtcbiAgICB0aGlzLmdhbWVTZXNzaW9uUXVldWVzLnB1c2goZ2FtZVNlc3Npb25RdWV1ZSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlR2FtZVNlc3Npb25RdWV1ZXMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5nYW1lU2Vzc2lvblF1ZXVlcyB8fCB0aGlzLmdhbWVTZXNzaW9uUXVldWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nYW1lU2Vzc2lvblF1ZXVlcy5tYXAoKHF1ZXVlKSA9PiBxdWV1ZS5nYW1lU2Vzc2lvblF1ZXVlQXJuKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VHYW1lUHJvcGVydGllcyhwcm9wczogUXVldWVkTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uUHJvcHMpOiBnYW1lbGlmdC5DZm5NYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb24uR2FtZVByb3BlcnR5UHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFwcm9wcy5nYW1lUHJvcGVydGllcyB8fCBwcm9wcy5nYW1lUHJvcGVydGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzLmdhbWVQcm9wZXJ0aWVzLm1hcChwYXJzZUdhbWVQcm9wZXJ0eSk7XG5cbiAgICBmdW5jdGlvbiBwYXJzZUdhbWVQcm9wZXJ0eShnYW1lUHJvcGVydHk6IEdhbWVQcm9wZXJ0eSk6IGdhbWVsaWZ0LkNmbk1hdGNobWFraW5nQ29uZmlndXJhdGlvbi5HYW1lUHJvcGVydHlQcm9wZXJ0eSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGdhbWVQcm9wZXJ0eS5rZXksXG4gICAgICAgIHZhbHVlOiBnYW1lUHJvcGVydHkudmFsdWUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG59Il19
package/lib/script.js CHANGED
@@ -15,7 +15,7 @@ class ScriptBase extends cdk.Resource {
15
15
  }
16
16
  exports.ScriptBase = ScriptBase;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- ScriptBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.ScriptBase", version: "2.59.0-alpha.0" };
18
+ ScriptBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.ScriptBase", version: "2.60.0-alpha.0" };
19
19
  /**
20
20
  * A GameLift script, that is installed and runs on instances in an Amazon GameLift fleet. It consists of
21
21
  * a zip file with all of the components of the realtime game server script.
@@ -119,7 +119,7 @@ class Script extends ScriptBase {
119
119
  }
120
120
  exports.Script = Script;
121
121
  _b = JSII_RTTI_SYMBOL_1;
122
- Script[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Script", version: "2.59.0-alpha.0" };
122
+ Script[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Script", version: "2.60.0-alpha.0" };
123
123
  /**
124
124
  * Given an opaque (token) ARN, returns a CloudFormation expression that extracts the script
125
125
  * identifier from the ARN.
@@ -0,0 +1,40 @@
1
+ import * as sns from 'aws-cdk-lib/aws-sns';
2
+ import { Construct } from 'constructs';
3
+ import { MatchmakingConfigurationProps, MatchmakingConfigurationBase, IMatchmakingConfiguration } from './matchmaking-configuration';
4
+ /**
5
+ * Properties for a new standalone matchmaking configuration
6
+ */
7
+ export interface StandaloneMatchmakingConfigurationProps extends MatchmakingConfigurationProps {
8
+ }
9
+ /**
10
+ * A FlexMatch matchmaker process does the work of building a game match.
11
+ * 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.
12
+ * This topic describes the key aspects of a matchmaker and how to configure one customized for your game.
13
+ *
14
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html
15
+ *
16
+ * @resource AWS::GameLift::MatchmakingConfiguration
17
+ */
18
+ export declare class StandaloneMatchmakingConfiguration extends MatchmakingConfigurationBase {
19
+ /**
20
+ * Import an existing matchmaking configuration from its name.
21
+ */
22
+ static fromStandaloneMatchmakingConfigurationName(scope: Construct, id: string, matchmakingConfigurationName: string): IMatchmakingConfiguration;
23
+ /**
24
+ * Import an existing matchmaking configuration from its ARN.
25
+ */
26
+ static fromStandaloneMatchmakingConfigurationArn(scope: Construct, id: string, matchmakingConfigurationArn: string): IMatchmakingConfiguration;
27
+ /**
28
+ * The Identifier of the matchmaking configuration.
29
+ */
30
+ readonly matchmakingConfigurationName: string;
31
+ /**
32
+ * The ARN of the matchmaking configuration.
33
+ */
34
+ readonly matchmakingConfigurationArn: string;
35
+ /**
36
+ * The notification target for matchmaking events
37
+ */
38
+ readonly notificationTarget?: sns.ITopic;
39
+ constructor(scope: Construct, id: string, props: StandaloneMatchmakingConfigurationProps);
40
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.StandaloneMatchmakingConfiguration = void 0;
5
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ const iam = require("aws-cdk-lib/aws-iam");
8
+ const sns = require("aws-cdk-lib/aws-sns");
9
+ const cdk = require("aws-cdk-lib");
10
+ const gamelift = require("aws-cdk-lib/aws-gamelift");
11
+ const matchmaking_configuration_1 = require("./matchmaking-configuration");
12
+ /**
13
+ * A FlexMatch matchmaker process does the work of building a game match.
14
+ * 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.
15
+ * This topic describes the key aspects of a matchmaker and how to configure one customized for your game.
16
+ *
17
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html
18
+ *
19
+ * @resource AWS::GameLift::MatchmakingConfiguration
20
+ */
21
+ class StandaloneMatchmakingConfiguration extends matchmaking_configuration_1.MatchmakingConfigurationBase {
22
+ constructor(scope, id, props) {
23
+ super(scope, id, {
24
+ physicalName: props.matchmakingConfigurationName,
25
+ });
26
+ try {
27
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_StandaloneMatchmakingConfigurationProps(props);
28
+ }
29
+ catch (error) {
30
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
31
+ Error.captureStackTrace(error, StandaloneMatchmakingConfiguration);
32
+ }
33
+ throw error;
34
+ }
35
+ if (props.matchmakingConfigurationName && !cdk.Token.isUnresolved(props.matchmakingConfigurationName)) {
36
+ if (props.matchmakingConfigurationName.length > 128) {
37
+ throw new Error(`Matchmaking configuration name can not be longer than 128 characters but has ${props.matchmakingConfigurationName.length} characters.`);
38
+ }
39
+ if (!/^[a-zA-Z0-9-\.]+$/.test(props.matchmakingConfigurationName)) {
40
+ throw new Error(`Matchmaking configuration name ${props.matchmakingConfigurationName} can contain only letters, numbers, hyphens, back slash or dot with no spaces.`);
41
+ }
42
+ }
43
+ if (props.description && !cdk.Token.isUnresolved(props.description)) {
44
+ if (props.description.length > 1024) {
45
+ throw new Error(`Matchmaking configuration description can not be longer than 1024 characters but has ${props.description.length} characters.`);
46
+ }
47
+ }
48
+ if (props.customEventData && props.customEventData.length > 256) {
49
+ throw new Error(`Matchmaking configuration custom event data can not be longer than 256 characters but has ${props.customEventData.length} characters.`);
50
+ }
51
+ if (props.acceptanceTimeout && props.acceptanceTimeout.toSeconds() > 600) {
52
+ throw new Error(`Matchmaking configuration acceptance timeout can not exceed 600 seconds, actual ${props.acceptanceTimeout.toSeconds()} seconds.`);
53
+ }
54
+ if (props.requestTimeout && props.requestTimeout.toSeconds() > 43200) {
55
+ throw new Error(`Matchmaking configuration request timeout can not exceed 43200 seconds, actual ${props.requestTimeout.toSeconds()} seconds.`);
56
+ }
57
+ //Notification target
58
+ this.notificationTarget = props.notificationTarget;
59
+ if (!this.notificationTarget) {
60
+ this.notificationTarget = new sns.Topic(this, 'Topic', {});
61
+ }
62
+ // Be sure to add the right TopicPolicy to enable gamelift publish action to given topic
63
+ const topicPolicy = new sns.TopicPolicy(this, 'TopicPolicy', {
64
+ topics: [this.notificationTarget],
65
+ });
66
+ topicPolicy.document.addStatements(new iam.PolicyStatement({
67
+ actions: ['sns:Publish'],
68
+ principals: [new iam.ServicePrincipal('gamelift.amazonaws.com')],
69
+ resources: [this.notificationTarget.topicArn],
70
+ }));
71
+ const resource = new gamelift.CfnMatchmakingConfiguration(this, 'Resource', {
72
+ name: this.physicalName,
73
+ acceptanceRequired: Boolean(props.requireAcceptance),
74
+ acceptanceTimeoutSeconds: props.acceptanceTimeout && props.acceptanceTimeout.toSeconds(),
75
+ customEventData: props.customEventData,
76
+ description: props.description,
77
+ flexMatchMode: 'STANDALONE',
78
+ notificationTarget: this.notificationTarget.topicArn,
79
+ requestTimeoutSeconds: props.requestTimeout && props.requestTimeout.toSeconds() || cdk.Duration.seconds(300).toSeconds(),
80
+ ruleSetName: props.ruleSet.matchmakingRuleSetName,
81
+ });
82
+ this.matchmakingConfigurationName = this.getResourceNameAttribute(resource.ref);
83
+ this.matchmakingConfigurationArn = cdk.Stack.of(scope).formatArn({
84
+ service: 'gamelift',
85
+ resource: 'matchmakingconfiguration',
86
+ resourceName: this.matchmakingConfigurationName,
87
+ arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
88
+ });
89
+ }
90
+ /**
91
+ * Import an existing matchmaking configuration from its name.
92
+ */
93
+ static fromStandaloneMatchmakingConfigurationName(scope, id, matchmakingConfigurationName) {
94
+ return this.fromMatchmakingConfigurationAttributes(scope, id, { matchmakingConfigurationName });
95
+ }
96
+ /**
97
+ * Import an existing matchmaking configuration from its ARN.
98
+ */
99
+ static fromStandaloneMatchmakingConfigurationArn(scope, id, matchmakingConfigurationArn) {
100
+ return this.fromMatchmakingConfigurationAttributes(scope, id, { matchmakingConfigurationArn });
101
+ }
102
+ }
103
+ exports.StandaloneMatchmakingConfiguration = StandaloneMatchmakingConfiguration;
104
+ _a = JSII_RTTI_SYMBOL_1;
105
+ StandaloneMatchmakingConfiguration[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.StandaloneMatchmakingConfiguration", version: "2.60.0-alpha.0" };
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhbG9uZS1tYXRjaG1ha2luZy1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhbG9uZS1tYXRjaG1ha2luZy1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsbUNBQW1DO0FBRW5DLHFEQUFxRDtBQUNyRCwyRUFBcUk7QUFPckk7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGtDQUFtQyxTQUFRLHdEQUE0QjtJQTZCbEYsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QztRQUN0RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsNEJBQTRCO1NBQ2pELENBQUMsQ0FBQzs7Ozs7OytDQWhDTSxrQ0FBa0M7Ozs7UUFrQzNDLElBQUksS0FBSyxDQUFDLDRCQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDckcsSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsS0FBSyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7YUFDMUo7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFO2dCQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxLQUFLLENBQUMsNEJBQTRCLGdGQUFnRixDQUFDLENBQUM7YUFDdks7U0FDRjtRQUVELElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNuRSxJQUFJLEtBQUssQ0FB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QUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9ELE9BQU8sRUFBRSxVQUFVO1lBQ25CLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsWUFBWSxFQUFFLElBQUksQ0FBQyw0QkFBNEI7WUFDL0MsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1NBQzdDLENBQUMsQ0FBQztLQUNKO0lBOUZEOztTQUVLO0lBQ0wsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLDRCQUFvQztRQUNsSCxPQUFPLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0tBQ2pHO0lBRUQ7O1NBRUs7SUFDTCxNQUFNLENBQUMseUNBQXlDLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsMkJBQW1DO1FBQ2hILE9BQU8sSUFBSSxDQUFDLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7S0FDaEc7O0FBZEgsZ0ZBaUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZ2FtZWxpZnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWdhbWVsaWZ0JztcbmltcG9ydCB7IE1hdGNobWFraW5nQ29uZmlndXJhdGlvblByb3BzLCBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25CYXNlLCBJTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tYXRjaG1ha2luZy1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBzdGFuZGFsb25lIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFsb25lTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uUHJvcHMgZXh0ZW5kcyBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Qcm9wcyB7fVxuXG4vKipcbiAqIEEgRmxleE1hdGNoIG1hdGNobWFrZXIgcHJvY2VzcyBkb2VzIHRoZSB3b3JrIG9mIGJ1aWxkaW5nIGEgZ2FtZSBtYXRjaC5cbiAqIEl0IG1hbmFnZXMgdGhlIHBvb2wgb2YgbWF0Y2htYWtpbmcgcmVxdWVzdHMgcmVjZWl2ZWQsIGZvcm1zIHRlYW1zIGZvciBhIG1hdGNoLCBwcm9jZXNzZXMgYW5kIHNlbGVjdHMgcGxheWVycyB0byBmaW5kIHRoZSBiZXN0IHBvc3NpYmxlIHBsYXllciBncm91cHMsIGFuZCBpbml0aWF0ZXMgdGhlIHByb2Nlc3Mgb2YgcGxhY2luZyBhbmQgc3RhcnRpbmcgYSBnYW1lIHNlc3Npb24gZm9yIHRoZSBtYXRjaC5cbiAqIFRoaXMgdG9waWMgZGVzY3JpYmVzIHRoZSBrZXkgYXNwZWN0cyBvZiBhIG1hdGNobWFrZXIgYW5kIGhvdyB0byBjb25maWd1cmUgb25lIGN1c3RvbWl6ZWQgZm9yIHlvdXIgZ2FtZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZmxleG1hdGNoZ3VpZGUvbWF0Y2gtY29uZmlndXJhdGlvbi5odG1sXG4gKlxuICogQHJlc291cmNlIEFXUzo6R2FtZUxpZnQ6Ok1hdGNobWFraW5nQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhbG9uZU1hdGNobWFraW5nQ29uZmlndXJhdGlvbiBleHRlbmRzIE1hdGNobWFraW5nQ29uZmlndXJhdGlvbkJhc2Uge1xuXG4gIC8qKlxuICAgICAqIEltcG9ydCBhbiBleGlzdGluZyBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGZyb20gaXRzIG5hbWUuXG4gICAgICovXG4gIHN0YXRpYyBmcm9tU3RhbmRhbG9uZU1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nKTogSU1hdGNobWFraW5nQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU1hdGNobWFraW5nQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbiBmcm9tIGl0cyBBUk4uXG4gICAgICovXG4gIHN0YXRpYyBmcm9tU3RhbmRhbG9uZU1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm46IHN0cmluZyk6IElNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLmZyb21NYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25BdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gdGFyZ2V0IGZvciBtYXRjaG1ha2luZyBldmVudHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXQ/OiBzbnMuSVRvcGljO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFuZGFsb25lTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIG5hbWUgY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMjggY2hhcmFjdGVycyBidXQgaGFzICR7cHJvcHMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghL15bYS16QS1aMC05LVxcLl0rJC8udGVzdChwcm9wcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gbmFtZSAke3Byb3BzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWV9IGNhbiBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgaHlwaGVucywgYmFjayBzbGFzaCBvciBkb3Qgd2l0aCBubyBzcGFjZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSkge1xuICAgICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGRlc2NyaXB0aW9uIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMTAyNCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmN1c3RvbUV2ZW50RGF0YSAmJiBwcm9wcy5jdXN0b21FdmVudERhdGEubGVuZ3RoID4gMjU2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gY3VzdG9tIGV2ZW50IGRhdGEgY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAyNTYgY2hhcmFjdGVycyBidXQgaGFzICR7cHJvcHMuY3VzdG9tRXZlbnREYXRhLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuYWNjZXB0YW5jZVRpbWVvdXQgJiYgcHJvcHMuYWNjZXB0YW5jZVRpbWVvdXQudG9TZWNvbmRzKCkgPiA2MDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbiBhY2NlcHRhbmNlIHRpbWVvdXQgY2FuIG5vdCBleGNlZWQgNjAwIHNlY29uZHMsIGFjdHVhbCAke3Byb3BzLmFjY2VwdGFuY2VUaW1lb3V0LnRvU2Vjb25kcygpfSBzZWNvbmRzLmApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5yZXF1ZXN0VGltZW91dCAmJiBwcm9wcy5yZXF1ZXN0VGltZW91dC50b1NlY29uZHMoKSA+IDQzMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gcmVxdWVzdCB0aW1lb3V0IGNhbiBub3QgZXhjZWVkIDQzMjAwIHNlY29uZHMsIGFjdHVhbCAke3Byb3BzLnJlcXVlc3RUaW1lb3V0LnRvU2Vjb25kcygpfSBzZWNvbmRzLmApO1xuICAgIH1cblxuICAgIC8vTm90aWZpY2F0aW9uIHRhcmdldFxuICAgIHRoaXMubm90aWZpY2F0aW9uVGFyZ2V0ID0gcHJvcHMubm90aWZpY2F0aW9uVGFyZ2V0O1xuICAgIGlmICghdGhpcy5ub3RpZmljYXRpb25UYXJnZXQpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uVGFyZ2V0ID0gbmV3IHNucy5Ub3BpYyh0aGlzLCAnVG9waWMnLCB7fSk7XG4gICAgfVxuICAgIC8vIEJlIHN1cmUgdG8gYWRkIHRoZSByaWdodCBUb3BpY1BvbGljeSB0byBlbmFibGUgZ2FtZWxpZnQgcHVibGlzaCBhY3Rpb24gdG8gZ2l2ZW4gdG9waWNcbiAgICBjb25zdCB0b3BpY1BvbGljeSA9IG5ldyBzbnMuVG9waWNQb2xpY3kodGhpcywgJ1RvcGljUG9saWN5Jywge1xuICAgICAgdG9waWNzOiBbdGhpcy5ub3RpZmljYXRpb25UYXJnZXRdLFxuICAgIH0pO1xuICAgIHRvcGljUG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydzbnM6UHVibGlzaCddLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZ2FtZWxpZnQuYW1hem9uYXdzLmNvbScpXSxcbiAgICAgIHJlc291cmNlczogW3RoaXMubm90aWZpY2F0aW9uVGFyZ2V0LnRvcGljQXJuXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBnYW1lbGlmdC5DZm5NYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBhY2NlcHRhbmNlUmVxdWlyZWQ6IEJvb2xlYW4ocHJvcHMucmVxdWlyZUFjY2VwdGFuY2UpLFxuICAgICAgYWNjZXB0YW5jZVRpbWVvdXRTZWNvbmRzOiBwcm9wcy5hY2NlcHRhbmNlVGltZW91dCAmJiBwcm9wcy5hY2NlcHRhbmNlVGltZW91dC50b1NlY29uZHMoKSxcbiAgICAgIGN1c3RvbUV2ZW50RGF0YTogcHJvcHMuY3VzdG9tRXZlbnREYXRhLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgZmxleE1hdGNoTW9kZTogJ1NUQU5EQUxPTkUnLFxuICAgICAgbm90aWZpY2F0aW9uVGFyZ2V0OiB0aGlzLm5vdGlmaWNhdGlvblRhcmdldC50b3BpY0FybixcbiAgICAgIHJlcXVlc3RUaW1lb3V0U2Vjb25kczogcHJvcHMucmVxdWVzdFRpbWVvdXQgJiYgcHJvcHMucmVxdWVzdFRpbWVvdXQudG9TZWNvbmRzKCkgfHwgY2RrLkR1cmF0aW9uLnNlY29uZHMoMzAwKS50b1NlY29uZHMoKSxcbiAgICAgIHJ1bGVTZXROYW1lOiBwcm9wcy5ydWxlU2V0Lm1hdGNobWFraW5nUnVsZVNldE5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShyZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJuID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnbWF0Y2htYWtpbmdjb25maWd1cmF0aW9uJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cbn0iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-gamelift-alpha",
3
- "version": "2.59.0-alpha.0",
3
+ "version": "2.60.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for AWS::GameLift",
6
6
  "main": "lib/index.js",
@@ -81,20 +81,20 @@
81
81
  },
82
82
  "license": "Apache-2.0",
83
83
  "devDependencies": {
84
- "@aws-cdk/cdk-build-tools": "2.59.0",
85
- "@aws-cdk/integ-runner": "2.59.0",
86
- "@aws-cdk/cfn2ts": "2.59.0",
87
- "@aws-cdk/pkglint": "2.59.0",
84
+ "@aws-cdk/cdk-build-tools": "2.60.0",
85
+ "@aws-cdk/integ-runner": "2.60.0",
86
+ "@aws-cdk/cfn2ts": "2.60.0",
87
+ "@aws-cdk/pkglint": "2.60.0",
88
88
  "@types/jest": "^27.5.2",
89
89
  "jest": "^27.5.1",
90
- "aws-cdk-lib": "2.59.0",
90
+ "aws-cdk-lib": "2.60.0",
91
91
  "constructs": "^10.0.0",
92
- "@aws-cdk/integ-tests-alpha": "2.59.0-alpha.0"
92
+ "@aws-cdk/integ-tests-alpha": "2.60.0-alpha.0"
93
93
  },
94
94
  "dependencies": {},
95
95
  "homepage": "https://github.com/aws/aws-cdk",
96
96
  "peerDependencies": {
97
- "aws-cdk-lib": "^2.59.0",
97
+ "aws-cdk-lib": "^2.60.0",
98
98
  "constructs": "^10.0.0"
99
99
  },
100
100
  "engines": {