@aws-cdk/aws-gamelift-alpha 2.49.1-alpha.0 → 2.51.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,155 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BuildFleet = 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 cdk = require("aws-cdk-lib");
9
+ const fleet_base_1 = require("./fleet-base");
10
+ const aws_gamelift_1 = require("aws-cdk-lib/aws-gamelift");
11
+ /**
12
+ * A fleet contains Amazon Elastic Compute Cloud (Amazon EC2) instances that GameLift hosts.
13
+ * A fleet uses the configuration and scaling logic that you define to run your game server build. You can use a fleet directly without a queue.
14
+ * You can also associate multiple fleets with a GameLift queue.
15
+ *
16
+ * For example, you can use Spot Instance fleets configured with your preferred locations, along with a backup On-Demand Instance fleet with the same locations.
17
+ * Using multiple Spot Instance fleets of different instance types reduces the chance of needing On-Demand Instance placement.
18
+ *
19
+ * @resource AWS::GameLift::Fleet
20
+ */
21
+ class BuildFleet extends fleet_base_1.FleetBase {
22
+ constructor(scope, id, props) {
23
+ super(scope, id, {
24
+ physicalName: props.fleetName,
25
+ });
26
+ this.ingressRules = [];
27
+ try {
28
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_BuildFleetProps(props);
29
+ }
30
+ catch (error) {
31
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
32
+ Error.captureStackTrace(error, BuildFleet);
33
+ }
34
+ throw error;
35
+ }
36
+ if (!cdk.Token.isUnresolved(props.fleetName)) {
37
+ if (props.fleetName.length > 1024) {
38
+ throw new Error(`Fleet name can not be longer than 1024 characters but has ${props.fleetName.length} characters.`);
39
+ }
40
+ }
41
+ if (props.description && !cdk.Token.isUnresolved(props.description)) {
42
+ if (props.description.length > 1024) {
43
+ throw new Error(`Fleet description can not be longer than 1024 characters but has ${props.description.length} characters.`);
44
+ }
45
+ }
46
+ if (props.minSize && props.minSize < 0) {
47
+ throw new Error(`The minimum number of instances allowed in the Fleet cannot be lower than 0, given ${props.minSize}`);
48
+ }
49
+ if (props.maxSize && props.maxSize < 0) {
50
+ throw new Error(`The maximum number of instances allowed in the Fleet cannot be lower than 0, given ${props.maxSize}`);
51
+ }
52
+ if (props.peerVpc) {
53
+ this.warnVpcPeeringAuthorizations(this);
54
+ }
55
+ // Add all locations
56
+ if (props.locations && props.locations?.length > 100) {
57
+ throw new Error(`No more than 100 locations are allowed per fleet, given ${props.locations.length}`);
58
+ }
59
+ (props.locations || []).forEach(this.addInternalLocation.bind(this));
60
+ // Add all Ingress rules
61
+ if (props.ingressRules && props.ingressRules?.length > 50) {
62
+ throw new Error(`No more than 50 ingress rules are allowed per fleet, given ${props.ingressRules.length}`);
63
+ }
64
+ (props.ingressRules || []).forEach(this.addInternalIngressRule.bind(this));
65
+ this.content = props.content;
66
+ this.role = props.role ?? new iam.Role(this, 'ServiceRole', {
67
+ assumedBy: new iam.CompositePrincipal(new iam.ServicePrincipal('gamelift.amazonaws.com'), new iam.ServicePrincipal('ec2.amazonaws.com')),
68
+ });
69
+ this.grantPrincipal = this.role;
70
+ const resource = new aws_gamelift_1.CfnFleet(this, 'Resource', {
71
+ buildId: this.content.buildId,
72
+ certificateConfiguration: {
73
+ certificateType: props.useCertificate ? 'GENERATED' : 'DISABLED',
74
+ },
75
+ description: props.description,
76
+ desiredEc2Instances: props.desiredCapacity,
77
+ ec2InboundPermissions: cdk.Lazy.any({ produce: () => this.parseIngressRules() }),
78
+ ec2InstanceType: props.instanceType.toString(),
79
+ fleetType: props.useSpot ? 'SPOT' : 'ON_DEMAND',
80
+ instanceRoleArn: this.role.roleArn,
81
+ locations: cdk.Lazy.any({ produce: () => this.parseLocations() }),
82
+ maxSize: props.maxSize ? props.maxSize : 1,
83
+ minSize: props.minSize ? props.minSize : 0,
84
+ name: this.physicalName,
85
+ newGameSessionProtectionPolicy: props.protectNewGameSession ? 'FullProtection' : 'NoProtection',
86
+ peerVpcAwsAccountId: props.peerVpc && props.peerVpc.env.account,
87
+ peerVpcId: props.peerVpc && props.peerVpc.vpcId,
88
+ resourceCreationLimitPolicy: this.parseResourceCreationLimitPolicy(props),
89
+ runtimeConfiguration: this.parseRuntimeConfiguration(props),
90
+ });
91
+ this.fleetId = this.getResourceNameAttribute(resource.ref);
92
+ this.fleetArn = cdk.Stack.of(scope).formatArn({
93
+ service: 'gamelift',
94
+ resource: 'fleet',
95
+ resourceName: this.fleetId,
96
+ arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
97
+ });
98
+ }
99
+ /**
100
+ * Import an existing fleet from its identifier.
101
+ */
102
+ static fromBuildFleetId(scope, id, buildFleetId) {
103
+ return this.fromFleetAttributes(scope, id, { fleetId: buildFleetId });
104
+ }
105
+ /**
106
+ * Import an existing fleet from its ARN.
107
+ */
108
+ static fromBuildFleetArn(scope, id, buildFleetArn) {
109
+ return this.fromFleetAttributes(scope, id, { fleetArn: buildFleetArn });
110
+ }
111
+ /**
112
+ * Adds an ingress rule to allow inbound traffic to access game sessions on this fleet.
113
+ *
114
+ * @param source A range of allowed IP addresses
115
+ * @param port The port range used for ingress traffic
116
+ */
117
+ addIngressRule(source, port) {
118
+ try {
119
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_IPeer(source);
120
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_Port(port);
121
+ }
122
+ catch (error) {
123
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
124
+ Error.captureStackTrace(error, this.addIngressRule);
125
+ }
126
+ throw error;
127
+ }
128
+ this.addInternalIngressRule({
129
+ source: source,
130
+ port: port,
131
+ });
132
+ }
133
+ addInternalIngressRule(ingressRule) {
134
+ if (this.ingressRules.length == 50) {
135
+ throw new Error('No more than 50 ingress rules are allowed per fleet');
136
+ }
137
+ this.ingressRules.push(ingressRule);
138
+ }
139
+ parseIngressRules() {
140
+ if (!this.ingressRules || this.ingressRules.length === 0) {
141
+ return undefined;
142
+ }
143
+ return this.ingressRules.map(parseIngressRule);
144
+ function parseIngressRule(ingressRule) {
145
+ return {
146
+ ...ingressRule.port.toJson(),
147
+ ...ingressRule.source.toJson(),
148
+ };
149
+ }
150
+ }
151
+ }
152
+ exports.BuildFleet = BuildFleet;
153
+ _a = JSII_RTTI_SYMBOL_1;
154
+ BuildFleet[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildFleet", version: "2.51.0-alpha.0" };
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZmxlZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC1mbGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBMkM7QUFDM0MsbUNBQW1DO0FBR25DLDZDQUE2RDtBQUM3RCwyREFBb0Q7QUErQnBEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBMkN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzlCLENBQUMsQ0FBQztRQUxZLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQzs7Ozs7OytDQXpDdkMsVUFBVTs7OztRQWdEbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM1QyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRTtnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxDQUFDO2FBQ3BIO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0VBQW9FLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQzthQUM3SDtTQUNGO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0ZB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bmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElCdWlsZCB9IGZyb20gJy4vYnVpbGQnO1xuaW1wb3J0IHsgRmxlZXRCYXNlLCBGbGVldFByb3BzLCBJRmxlZXQgfSBmcm9tICcuL2ZsZWV0LWJhc2UnO1xuaW1wb3J0IHsgQ2ZuRmxlZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2FtZWxpZnQnO1xuaW1wb3J0IHsgUG9ydCwgSVBlZXIsIEluZ3Jlc3NSdWxlIH0gZnJvbSAnLi9pbmdyZXNzLXJ1bGUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBHYW1lTGlmdCBGbGVldCB1c2VkIHRvIHJ1biBhIGN1c3RvbSBnYW1lIGJ1aWxkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCdWlsZEZsZWV0IGV4dGVuZHMgSUZsZWV0IHt9XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgR2FtZWxpZnQgYnVpbGQgZmxlZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEZsZWV0UHJvcHMgZXh0ZW5kcyBGbGVldFByb3BzIHtcblxuICAvKipcbiAgICAgKiBBIGJ1aWxkIHRvIGJlIGRlcGxveWVkIG9uIHRoZSBmbGVldC5cbiAgICAgKiBUaGUgYnVpbGQgbXVzdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIHRvIEFtYXpvbiBHYW1lTGlmdCBhbmQgYmUgaW4gYSBgUkVBRFlgIHN0YXR1cy5cbiAgICAgKlxuICAgICAqIFRoaXMgZmxlZXQgc2V0dGluZyBjYW5ub3QgYmUgY2hhbmdlZCBvbmNlIHRoZSBmbGVldCBpcyBjcmVhdGVkLlxuICAgICAqL1xuICByZWFkb25seSBjb250ZW50OiBJQnVpbGQ7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGxvd2VkIElQIGFkZHJlc3MgcmFuZ2VzIGFuZCBwb3J0IHNldHRpbmdzIHRoYXQgYWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIGFjY2VzcyBnYW1lIHNlc3Npb25zIG9uIHRoaXMgZmxlZXQuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgbXVzdCBiZSBzZXQgYmVmb3JlIHBsYXllcnMgY2FuIGNvbm5lY3QgdG8gZ2FtZSBzZXNzaW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gaW5ib3VuZCB0cmFmZmljIGFsbG93ZWRcbiAgICovXG4gIHJlYWRvbmx5IGluZ3Jlc3NSdWxlcz86IEluZ3Jlc3NSdWxlW107XG59XG5cbi8qKlxuICogQSBmbGVldCBjb250YWlucyBBbWF6b24gRWxhc3RpYyBDb21wdXRlIENsb3VkIChBbWF6b24gRUMyKSBpbnN0YW5jZXMgdGhhdCBHYW1lTGlmdCBob3N0cy5cbiAqIEEgZmxlZXQgdXNlcyB0aGUgY29uZmlndXJhdGlvbiBhbmQgc2NhbGluZyBsb2dpYyB0aGF0IHlvdSBkZWZpbmUgdG8gcnVuIHlvdXIgZ2FtZSBzZXJ2ZXIgYnVpbGQuIFlvdSBjYW4gdXNlIGEgZmxlZXQgZGlyZWN0bHkgd2l0aG91dCBhIHF1ZXVlLlxuICogWW91IGNhbiBhbHNvIGFzc29jaWF0ZSBtdWx0aXBsZSBmbGVldHMgd2l0aCBhIEdhbWVMaWZ0IHF1ZXVlLlxuICpcbiAqIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSBTcG90IEluc3RhbmNlIGZsZWV0cyBjb25maWd1cmVkIHdpdGggeW91ciBwcmVmZXJyZWQgbG9jYXRpb25zLCBhbG9uZyB3aXRoIGEgYmFja3VwIE9uLURlbWFuZCBJbnN0YW5jZSBmbGVldCB3aXRoIHRoZSBzYW1lIGxvY2F0aW9ucy5cbiAqIFVzaW5nIG11bHRpcGxlIFNwb3QgSW5zdGFuY2UgZmxlZXRzIG9mIGRpZmZlcmVudCBpbnN0YW5jZSB0eXBlcyByZWR1Y2VzIHRoZSBjaGFuY2Ugb2YgbmVlZGluZyBPbi1EZW1hbmQgSW5zdGFuY2UgcGxhY2VtZW50LlxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpGbGVldFxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRGbGVldCBleHRlbmRzIEZsZWV0QmFzZSBpbXBsZW1lbnRzIElCdWlsZEZsZWV0IHtcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGZsZWV0IGZyb20gaXRzIGlkZW50aWZpZXIuXG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1aWxkRmxlZXRJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWlsZEZsZWV0SWQ6IHN0cmluZyk6IElCdWlsZEZsZWV0IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tRmxlZXRBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBmbGVldElkOiBidWlsZEZsZWV0SWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGZsZWV0IGZyb20gaXRzIEFSTi5cbiAgICovXG4gIHN0YXRpYyBmcm9tQnVpbGRGbGVldEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWlsZEZsZWV0QXJuOiBzdHJpbmcpOiBJQnVpbGRGbGVldCB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUZsZWV0QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgZmxlZXRBcm46IGJ1aWxkRmxlZXRBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGZsZWV0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZsZWV0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZmxlZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmxlZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJ1aWxkIGNvbnRlbnQgb2YgdGhlIGZsZWV0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudDogSUJ1aWxkO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgR2FtZUxpZnQgYXNzdW1lcyBieSBmbGVldCBpbnN0YW5jZXMgdG8gYWNjZXNzIEFXUyByZXNzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdhbWVMaWZ0IGZsZWV0IGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGluZ3Jlc3NSdWxlczogSW5ncmVzc1J1bGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWlsZEZsZWV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuZmxlZXROYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKCFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmZsZWV0TmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5mbGVldE5hbWUubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsZWV0IG5hbWUgY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMDI0IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmZsZWV0TmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSkge1xuICAgICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGbGVldCBkZXNjcmlwdGlvbiBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEwMjQgY2hhcmFjdGVycyBidXQgaGFzICR7cHJvcHMuZGVzY3JpcHRpb24ubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5taW5TaXplICYmIHByb3BzLm1pblNpemUgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgYWxsb3dlZCBpbiB0aGUgRmxlZXQgY2Fubm90IGJlIGxvd2VyIHRoYW4gMCwgZ2l2ZW4gJHtwcm9wcy5taW5TaXplfWApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5tYXhTaXplICYmIHByb3BzLm1heFNpemUgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnN0YW5jZXMgYWxsb3dlZCBpbiB0aGUgRmxlZXQgY2Fubm90IGJlIGxvd2VyIHRoYW4gMCwgZ2l2ZW4gJHtwcm9wcy5tYXhTaXplfWApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5wZWVyVnBjKSB7XG4gICAgICB0aGlzLndhcm5WcGNQZWVyaW5nQXV0aG9yaXphdGlvbnModGhpcyk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGFsbCBsb2NhdGlvbnNcbiAgICBpZiAocHJvcHMubG9jYXRpb25zICYmIHByb3BzLmxvY2F0aW9ucz8ubGVuZ3RoID4gMTAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vcmUgdGhhbiAxMDAgbG9jYXRpb25zIGFyZSBhbGxvd2VkIHBlciBmbGVldCwgZ2l2ZW4gJHtwcm9wcy5sb2NhdGlvbnMubGVuZ3RofWApO1xuICAgIH1cbiAgICAocHJvcHMubG9jYXRpb25zIHx8IFtdKS5mb3JFYWNoKHRoaXMuYWRkSW50ZXJuYWxMb2NhdGlvbi5iaW5kKHRoaXMpKTtcblxuXG4gICAgLy8gQWRkIGFsbCBJbmdyZXNzIHJ1bGVzXG4gICAgaWYgKHByb3BzLmluZ3Jlc3NSdWxlcyAmJiBwcm9wcy5pbmdyZXNzUnVsZXM/Lmxlbmd0aCA+IDUwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vcmUgdGhhbiA1MCBpbmdyZXNzIHJ1bGVzIGFyZSBhbGxvd2VkIHBlciBmbGVldCwgZ2l2ZW4gJHtwcm9wcy5pbmdyZXNzUnVsZXMubGVuZ3RofWApO1xuICAgIH1cbiAgICAocHJvcHMuaW5ncmVzc1J1bGVzIHx8IFtdKS5mb3JFYWNoKHRoaXMuYWRkSW50ZXJuYWxJbmdyZXNzUnVsZS5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMuY29udGVudCA9IHByb3BzLmNvbnRlbnQ7XG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBuZXcgaWFtLlJvbGUodGhpcywgJ1NlcnZpY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkNvbXBvc2l0ZVByaW5jaXBhbChcbiAgICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdnYW1lbGlmdC5hbWF6b25hd3MuY29tJyksXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWMyLmFtYXpvbmF3cy5jb20nKSksXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkZsZWV0KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGJ1aWxkSWQ6IHRoaXMuY29udGVudC5idWlsZElkLFxuICAgICAgY2VydGlmaWNhdGVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGNlcnRpZmljYXRlVHlwZTogcHJvcHMudXNlQ2VydGlmaWNhdGUgPyAnR0VORVJBVEVEJzogJ0RJU0FCTEVEJyxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBkZXNpcmVkRWMySW5zdGFuY2VzOiBwcm9wcy5kZXNpcmVkQ2FwYWNpdHksXG4gICAgICBlYzJJbmJvdW5kUGVybWlzc2lvbnM6IGNkay5MYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMucGFyc2VJbmdyZXNzUnVsZXMoKSB9KSxcbiAgICAgIGVjMkluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCksXG4gICAgICBmbGVldFR5cGU6IHByb3BzLnVzZVNwb3QgPyAnU1BPVCcgOiAnT05fREVNQU5EJyxcbiAgICAgIGluc3RhbmNlUm9sZUFybjogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBsb2NhdGlvbnM6IGNkay5MYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMucGFyc2VMb2NhdGlvbnMoKSB9KSxcbiAgICAgIG1heFNpemU6IHByb3BzLm1heFNpemUgPyBwcm9wcy5tYXhTaXplIDogMSxcbiAgICAgIG1pblNpemU6IHByb3BzLm1pblNpemUgPyBwcm9wcy5taW5TaXplIDogMCxcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgbmV3R2FtZVNlc3Npb25Qcm90ZWN0aW9uUG9saWN5OiBwcm9wcy5wcm90ZWN0TmV3R2FtZVNlc3Npb24gPyAnRnVsbFByb3RlY3Rpb24nIDogJ05vUHJvdGVjdGlvbicsXG4gICAgICBwZWVyVnBjQXdzQWNjb3VudElkOiBwcm9wcy5wZWVyVnBjICYmIHByb3BzLnBlZXJWcGMuZW52LmFjY291bnQsXG4gICAgICBwZWVyVnBjSWQ6IHByb3BzLnBlZXJWcGMgJiYgcHJvcHMucGVlclZwYy52cGNJZCxcbiAgICAgIHJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeTogdGhpcy5wYXJzZVJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeShwcm9wcyksXG4gICAgICBydW50aW1lQ29uZmlndXJhdGlvbjogdGhpcy5wYXJzZVJ1bnRpbWVDb25maWd1cmF0aW9uKHByb3BzKSxcbiAgICB9KTtcblxuICAgIHRoaXMuZmxlZXRJZCA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5mbGVldEFybiA9IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2ZsZWV0JyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5mbGVldElkLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBpbmdyZXNzIHJ1bGUgdG8gYWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIGFjY2VzcyBnYW1lIHNlc3Npb25zIG9uIHRoaXMgZmxlZXQuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2UgQSByYW5nZSBvZiBhbGxvd2VkIElQIGFkZHJlc3Nlc1xuICAgKiBAcGFyYW0gcG9ydCBUaGUgcG9ydCByYW5nZSB1c2VkIGZvciBpbmdyZXNzIHRyYWZmaWNcbiAgICovXG4gIHB1YmxpYyBhZGRJbmdyZXNzUnVsZShzb3VyY2U6IElQZWVyLCBwb3J0OiBQb3J0KSB7XG4gICAgdGhpcy5hZGRJbnRlcm5hbEluZ3Jlc3NSdWxlKHtcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgcG9ydDogcG9ydCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW50ZXJuYWxJbmdyZXNzUnVsZShpbmdyZXNzUnVsZTogSW5ncmVzc1J1bGUpIHtcbiAgICBpZiAodGhpcy5pbmdyZXNzUnVsZXMubGVuZ3RoID09IDUwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1vcmUgdGhhbiA1MCBpbmdyZXNzIHJ1bGVzIGFyZSBhbGxvd2VkIHBlciBmbGVldCcpO1xuICAgIH1cbiAgICB0aGlzLmluZ3Jlc3NSdWxlcy5wdXNoKGluZ3Jlc3NSdWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VJbmdyZXNzUnVsZXMoKTogQ2ZuRmxlZXQuSXBQZXJtaXNzaW9uUHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmluZ3Jlc3NSdWxlcyB8fCB0aGlzLmluZ3Jlc3NSdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaW5ncmVzc1J1bGVzLm1hcChwYXJzZUluZ3Jlc3NSdWxlKTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlSW5ncmVzc1J1bGUoaW5ncmVzc1J1bGU6IEluZ3Jlc3NSdWxlKTogQ2ZuRmxlZXQuSXBQZXJtaXNzaW9uUHJvcGVydHkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5ncmVzc1J1bGUucG9ydC50b0pzb24oKSxcbiAgICAgICAgLi4uaW5ncmVzc1J1bGUuc291cmNlLnRvSnNvbigpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn0iXX0=
package/lib/build.js CHANGED
@@ -15,7 +15,7 @@ class BuildBase extends cdk.Resource {
15
15
  }
16
16
  exports.BuildBase = BuildBase;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- BuildBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.49.1-alpha.0" };
18
+ BuildBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.51.0-alpha.0" };
19
19
  /**
20
20
  * The operating system that the game server binaries are built to run on.
21
21
  */
@@ -68,6 +68,7 @@ class Build extends BuildBase {
68
68
  roleArn: this.role.roleArn,
69
69
  },
70
70
  });
71
+ resource.node.addDependency(this.role);
71
72
  this.buildId = resource.ref;
72
73
  }
73
74
  /**
@@ -117,5 +118,5 @@ class Build extends BuildBase {
117
118
  }
118
119
  exports.Build = Build;
119
120
  _b = JSII_RTTI_SYMBOL_1;
120
- Build[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.49.1-alpha.0" };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBMkM7QUFHM0MsbUNBQW1DO0FBRW5DLHVDQUFvQztBQUNwQywyREFBb0Q7QUFxQnBEOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLEdBQUcsQ0FBQyxRQUFROztBQUFwRCw4QkFPQzs7O0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsZ0RBQTZCLENBQUE7SUFDN0Isb0RBQWlDLENBQUE7SUFDakMsZ0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBSTFCO0FBd0VEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLEtBQU0sU0FBUSxTQUFTO0lBc0RsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlCO1FBQ3pELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzlCLENBQUMsQ0FBQzs7Ozs7OytDQXpETSxLQUFLOzs7O1FBMkRkLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRTtnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxDQUFDO2FBQ3BIO1NBQ0Y7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDMUQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDO1NBQzlELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUztZQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDM0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQzNELEdBQUcsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUztnQkFDdkQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhO2dCQUNyRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO0tBQzdCO0lBakZEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUFrQixFQUFFLEdBQVcsRUFBRSxhQUFzQjtRQUNyRyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUIsT0FBTyxFQUFFLGlCQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDO1NBQ3hELENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQVksRUFBRSxPQUFnQztRQUMzRixPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUIsT0FBTyxFQUFFLGlCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7U0FFSztJQUNMLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsT0FBZTtRQUM5RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUN6RDtJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCOzs7Ozs7Ozs7O1FBQzdFLE1BQU0sTUFBTyxTQUFRLFNBQVM7WUFBOUI7O2dCQUNrQixZQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDeEIsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUYsQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7O0FBckNILHNCQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDb250ZW50IH0gZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCB7IENmbkJ1aWxkIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdhbWVsaWZ0JztcblxuLyoqXG4gKiBZb3VyIGN1c3RvbS1idWlsdCBnYW1lIHNlcnZlciBzb2Z0d2FyZSB0aGF0IHJ1bnMgb24gR2FtZUxpZnQgYW5kIGhvc3RzIGdhbWUgc2Vzc2lvbnMgZm9yIHlvdXIgcGxheWVycy5cbiAqIEEgZ2FtZSBidWlsZCByZXByZXNlbnRzIHRoZSBzZXQgb2YgZmlsZXMgdGhhdCBydW4geW91ciBnYW1lIHNlcnZlciBvbiBhIHBhcnRpY3VsYXIgb3BlcmF0aW5nIHN5c3RlbS5cbiAqIFlvdSBjYW4gaGF2ZSBtYW55IGRpZmZlcmVudCBidWlsZHMsIHN1Y2ggYXMgZm9yIGRpZmZlcmVudCBmbGF2b3JzIG9mIHlvdXIgZ2FtZS5cbiAqIFRoZSBnYW1lIGJ1aWxkIG11c3QgYmUgaW50ZWdyYXRlZCB3aXRoIHRoZSBHYW1lTGlmdCBzZXJ2aWNlLlxuICogWW91IHVwbG9hZCBnYW1lIGJ1aWxkIGZpbGVzIHRvIHRoZSBHYW1lTGlmdCBzZXJ2aWNlIGluIHRoZSBSZWdpb25zIHdoZXJlIHlvdSBwbGFuIHRvIHNldCB1cCBmbGVldHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LWJ1aWxkLWNsaS11cGxvYWRpbmcuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCdWlsZCBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlIHtcblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgbmV3IGFuZCBpbXBvcnRlZCBHYW1lTGlmdCBzZXJ2ZXIgYnVpbGQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCdWlsZEJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQnVpbGQge1xuICAvKipcbiAgICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgYnVpbGQuXG4gICAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcbn1cblxuLyoqXG4gKiBUaGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHRoZSBnYW1lIHNlcnZlciBiaW5hcmllcyBhcmUgYnVpbHQgdG8gcnVuIG9uLlxuICovXG5leHBvcnQgZW51bSBPcGVyYXRpbmdTeXN0ZW0ge1xuICBBTUFaT05fTElOVVggPSAnQU1BWk9OX0xJTlVYJyxcbiAgQU1BWk9OX0xJTlVYXzIgPSAnQU1BWk9OX0xJTlVYXzInLFxuICBXSU5ET1dTXzIwMTIgPSAnV0lORE9XU18yMDEyJ1xufVxuXG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEJ1aWxkIGNvbnRlbnQgZGVmaW5lZCBvdXRzaWRlIG9mIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGJ1aWxkXG4gICAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IEdhbWVMaWZ0IHRvIGFjY2VzcyBzZXJ2ZXIgYnVpbGQgaW4gUzMuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IGJ1aWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQcm9wcyB7XG4gIC8qKlxuICAgICAqIE5hbWUgb2YgdGhpcyBidWlsZFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgTm8gbmFtZVxuICAgICAqL1xuICByZWFkb25seSBidWlsZE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVmVyc2lvbiBvZiB0aGlzIGJ1aWxkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBObyB2ZXJzaW9uXG4gICAgICovXG4gIHJlYWRvbmx5IGJ1aWxkVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHRoZSBnYW1lIHNlcnZlciBiaW5hcmllcyBhcmUgYnVpbHQgdG8gcnVuIG9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgTm8gdmVyc2lvblxuICAgICAqL1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW0/OiBPcGVyYXRpbmdTeXN0ZW07XG5cbiAgLyoqXG4gICAgICogVGhlIGdhbWUgYnVpbGQgZmlsZSBzdG9yYWdlXG4gICAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IENvbnRlbnQ7XG5cbiAgLyoqXG4gICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHYW1lTGlmdCB0byBhY2Nlc3Mgc2VydmVyIGJ1aWxkIGluIFMzLlxuICAgICogSWYgcHJvdmlkaW5nIGEgY3VzdG9tIHJvbGUsIGl0IG5lZWRzIHRvIHRydXN0IHRoZSBHYW1lTGlmdCBzZXJ2aWNlIHByaW5jaXBhbCAoZ2FtZWxpZnQuYW1hem9uYXdzLmNvbSkgYW5kIGJlIGdyYW50ZWQgc3VmZmljaWVudCBwZXJtaXNzaW9uc1xuICAgICogdG8gaGF2ZSBSZWFkIGFjY2VzcyB0byBhIHNwZWNpZmljIGtleSBjb250ZW50IGludG8gYSBzcGVjaWZpYyBTMyBidWNrZXQuXG4gICAgKiBCZWxvdyBhbiBleGFtcGxlIG9mIHJlcXVpcmVkIHBlcm1pc3Npb246XG4gICAgKiB7XG4gICAgKiAgXCJWZXJzaW9uXCI6IFwiMjAxMi0xMC0xN1wiLFxuICAgICogIFwiU3RhdGVtZW50XCI6IFt7XG4gICAgKiAgICAgICAgXCJFZmZlY3RcIjogXCJBbGxvd1wiLFxuICAgICogICAgICAgIFwiQWN0aW9uXCI6IFtcbiAgICAqICAgICAgICAgICAgXCJzMzpHZXRPYmplY3RcIixcbiAgICAqICAgICAgICAgICAgXCJzMzpHZXRPYmplY3RWZXJzaW9uXCJcbiAgICAqICAgICAgICBdLFxuICAgICogICAgICAgIFwiUmVzb3VyY2VcIjogXCJhcm46YXdzOnMzOjo6YnVja2V0LW5hbWUvb2JqZWN0LW5hbWVcIlxuICAgICogIH1dXG4gICAgKn1cbiAgICAqXG4gICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvc2VjdXJpdHlfaWFtX2lkLWJhc2VkLXBvbGljeS1leGFtcGxlcy5odG1sI3NlY3VyaXR5X2lhbV9pZC1iYXNlZC1wb2xpY3ktZXhhbXBsZXMtYWNjZXNzLXN0b3JhZ2UtbG9jXG4gICAgKlxuICAgICogQGRlZmF1bHQgLSBhIHJvbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGggZGVmYXVsdCBwZXJtaXNzaW9ucy5cbiAgICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIEEgR2FtZUxpZnQgYnVpbGQsIHRoYXQgaXMgaW5zdGFsbGVkIGFuZCBydW5zIG9uIGluc3RhbmNlcyBpbiBhbiBBbWF6b24gR2FtZUxpZnQgZmxlZXQuIEl0IGNvbnNpc3RzIG9mXG4gKiBhIHppcCBmaWxlIHdpdGggYWxsIG9mIHRoZSBjb21wb25lbnRzIG9mIHRoZSBnYW1lIHNlcnZlciBidWlsZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtYnVpbGQtY2xpLXVwbG9hZGluZy5odG1sXG4gKlxuICogQHJlc291cmNlIEFXUzo6R2FtZUxpZnQ6OkJ1aWxkXG4gKi9cbmV4cG9ydCBjbGFzcyBCdWlsZCBleHRlbmRzIEJ1aWxkQmFzZSB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBCdWlsZCBmcm9tIHMzIGNvbnRlbnRcbiAgICovXG4gIHN0YXRpYyBmcm9tQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcsIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgY29udGVudDogQ29udGVudC5mcm9tQnVja2V0KGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgQnVpbGQgZnJvbSBhc3NldCBjb250ZW50XG4gICAqL1xuICBzdGF0aWMgZnJvbUFzc2V0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgY29udGVudDogQ29udGVudC5mcm9tQXNzZXQocGF0aCwgb3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICAgKiBJbXBvcnQgYSBidWlsZCBpbnRvIENESyB1c2luZyBpdHMgaWRlbnRpZmllclxuICAgICAqL1xuICBzdGF0aWMgZnJvbUJ1aWxkSWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKTogSUJ1aWxkIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQnVpbGRBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBidWlsZElkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBidWlsZCBmcm9tIGl0cyBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgc3RhdGljIGZyb21CdWlsZEF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEJ1aWxkQXR0cmlidXRlcyk6IElCdWlsZCB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQnVpbGRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBidWlsZElkID0gYXR0cnMuYnVpbGRJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IGF0dHJzLnJvbGUgPz8gbmV3IGlhbS5Vbmtub3duUHJpbmNpcGFsKHsgcmVzb3VyY2U6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgYnVpbGQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgR2FtZUxpZnQgYXNzdW1lcyB0byBhY2NjZXNzIHNlcnZlciBidWlsZCBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdhbWVMaWZ0IEJ1aWxkIGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5idWlsZE5hbWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuYnVpbGROYW1lICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJ1aWxkTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5idWlsZE5hbWUubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJ1aWxkIG5hbWUgY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMDI0IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmJ1aWxkTmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucm9sZSA9IHByb3BzLnJvbGUgPz8gbmV3IGlhbS5Sb2xlKHRoaXMsICdTZXJ2aWNlUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdnYW1lbGlmdC5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcbiAgICBjb25zdCBjb250ZW50ID0gcHJvcHMuY29udGVudC5iaW5kKHRoaXMsIHRoaXMucm9sZSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5CdWlsZCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5idWlsZE5hbWUsXG4gICAgICB2ZXJzaW9uOiBwcm9wcy5idWlsZFZlcnNpb24sXG4gICAgICBvcGVyYXRpbmdTeXN0ZW06IHByb3BzLm9wZXJhdGluZ1N5c3RlbSxcbiAgICAgIHN0b3JhZ2VMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXQ6IGNvbnRlbnQuczNMb2NhdGlvbiAmJiBjb250ZW50LnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAga2V5OiBjb250ZW50LnMzTG9jYXRpb24gJiYgY29udGVudC5zM0xvY2F0aW9uLm9iamVjdEtleSxcbiAgICAgICAgb2JqZWN0VmVyc2lvbjogY29udGVudC5zM0xvY2F0aW9uICYmIGNvbnRlbnQuczNMb2NhdGlvbi5vYmplY3RWZXJzaW9uLFxuICAgICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkSWQgPSByZXNvdXJjZS5yZWY7XG4gIH1cblxuXG59XG4iXX0=
121
+ Build[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.51.0-alpha.0" };
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBMkM7QUFHM0MsbUNBQW1DO0FBRW5DLHVDQUFvQztBQUNwQywyREFBb0Q7QUFxQnBEOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLEdBQUcsQ0FBQyxRQUFROztBQUFwRCw4QkFPQzs7O0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsZ0RBQTZCLENBQUE7SUFDN0Isb0RBQWlDLENBQUE7SUFDakMsZ0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBSTFCO0FBd0VEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLEtBQU0sU0FBUSxTQUFTO0lBc0RsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlCO1FBQ3pELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzlCLENBQUMsQ0FBQzs7Ozs7OytDQXpETSxLQUFLOzs7O1FBMkRkLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRTtnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxDQUFDO2FBQ3BIO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDMUQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDO1NBQzlELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUztZQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDM0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQzNELEdBQUcsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUztnQkFDdkQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhO2dCQUNyRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztLQUM3QjtJQXBGRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBa0IsRUFBRSxHQUFXLEVBQUUsYUFBc0I7UUFDckcsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQztTQUN4RCxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFZLEVBQUUsT0FBZ0M7UUFDM0YsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1NBQzFDLENBQUMsQ0FBQztLQUNKO0lBRUQ7O1NBRUs7SUFDTCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQWU7UUFDOUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDekQ7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjs7Ozs7Ozs7OztRQUM3RSxNQUFNLE1BQU8sU0FBUSxTQUFTO1lBQTlCOztnQkFDa0IsWUFBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7Z0JBQ3hCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLENBQUM7U0FBQTtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCOztBQXJDSCxzQkF5RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNfYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gJy4vY29udGVudCc7XG5pbXBvcnQgeyBDZm5CdWlsZCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdCc7XG5cbi8qKlxuICogWW91ciBjdXN0b20tYnVpbHQgZ2FtZSBzZXJ2ZXIgc29mdHdhcmUgdGhhdCBydW5zIG9uIEdhbWVMaWZ0IGFuZCBob3N0cyBnYW1lIHNlc3Npb25zIGZvciB5b3VyIHBsYXllcnMuXG4gKiBBIGdhbWUgYnVpbGQgcmVwcmVzZW50cyB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgcnVuIHlvdXIgZ2FtZSBzZXJ2ZXIgb24gYSBwYXJ0aWN1bGFyIG9wZXJhdGluZyBzeXN0ZW0uXG4gKiBZb3UgY2FuIGhhdmUgbWFueSBkaWZmZXJlbnQgYnVpbGRzLCBzdWNoIGFzIGZvciBkaWZmZXJlbnQgZmxhdm9ycyBvZiB5b3VyIGdhbWUuXG4gKiBUaGUgZ2FtZSBidWlsZCBtdXN0IGJlIGludGVncmF0ZWQgd2l0aCB0aGUgR2FtZUxpZnQgc2VydmljZS5cbiAqIFlvdSB1cGxvYWQgZ2FtZSBidWlsZCBmaWxlcyB0byB0aGUgR2FtZUxpZnQgc2VydmljZSBpbiB0aGUgUmVnaW9ucyB3aGVyZSB5b3UgcGxhbiB0byBzZXQgdXAgZmxlZXRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9nYW1lbGlmdC1idWlsZC1jbGktdXBsb2FkaW5nLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnVpbGQgZXh0ZW5kcyBjZGsuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBJZGVudGlmaWVyIG9mIHRoZSBidWlsZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG5ldyBhbmQgaW1wb3J0ZWQgR2FtZUxpZnQgc2VydmVyIGJ1aWxkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnVpbGRCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUJ1aWxkIHtcbiAgLyoqXG4gICAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG59XG5cbi8qKlxuICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB0aGUgZ2FtZSBzZXJ2ZXIgYmluYXJpZXMgYXJlIGJ1aWx0IHRvIHJ1biBvbi5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0aW5nU3lzdGVtIHtcbiAgQU1BWk9OX0xJTlVYID0gJ0FNQVpPTl9MSU5VWCcsXG4gIEFNQVpPTl9MSU5VWF8yID0gJ0FNQVpPTl9MSU5VWF8yJyxcbiAgV0lORE9XU18yMDEyID0gJ1dJTkRPV1NfMjAxMidcbn1cblxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBCdWlsZCBjb250ZW50IGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBidWlsZFxuICAgICAqL1xuICByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHYW1lTGlmdCB0byBhY2Nlc3Mgc2VydmVyIGJ1aWxkIGluIFMzLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBidWlsZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUHJvcHMge1xuICAvKipcbiAgICAgKiBOYW1lIG9mIHRoaXMgYnVpbGRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IE5vIG5hbWVcbiAgICAgKi9cbiAgcmVhZG9ubHkgYnVpbGROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFZlcnNpb24gb2YgdGhpcyBidWlsZFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgTm8gdmVyc2lvblxuICAgICAqL1xuICByZWFkb25seSBidWlsZFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB0aGUgZ2FtZSBzZXJ2ZXIgYmluYXJpZXMgYXJlIGJ1aWx0IHRvIHJ1biBvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IE5vIHZlcnNpb25cbiAgICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtPzogT3BlcmF0aW5nU3lzdGVtO1xuXG4gIC8qKlxuICAgICAqIFRoZSBnYW1lIGJ1aWxkIGZpbGUgc3RvcmFnZVxuICAgICAqL1xuICByZWFkb25seSBjb250ZW50OiBDb250ZW50O1xuXG4gIC8qKlxuICAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgR2FtZUxpZnQgdG8gYWNjZXNzIHNlcnZlciBidWlsZCBpbiBTMy5cbiAgICAqIElmIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCBpdCBuZWVkcyB0byB0cnVzdCB0aGUgR2FtZUxpZnQgc2VydmljZSBwcmluY2lwYWwgKGdhbWVsaWZ0LmFtYXpvbmF3cy5jb20pIGFuZCBiZSBncmFudGVkIHN1ZmZpY2llbnQgcGVybWlzc2lvbnNcbiAgICAqIHRvIGhhdmUgUmVhZCBhY2Nlc3MgdG8gYSBzcGVjaWZpYyBrZXkgY29udGVudCBpbnRvIGEgc3BlY2lmaWMgUzMgYnVja2V0LlxuICAgICogQmVsb3cgYW4gZXhhbXBsZSBvZiByZXF1aXJlZCBwZXJtaXNzaW9uOlxuICAgICoge1xuICAgICogIFwiVmVyc2lvblwiOiBcIjIwMTItMTAtMTdcIixcbiAgICAqICBcIlN0YXRlbWVudFwiOiBbe1xuICAgICogICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICAqICAgICAgICBcIkFjdGlvblwiOiBbXG4gICAgKiAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0XCIsXG4gICAgKiAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0VmVyc2lvblwiXG4gICAgKiAgICAgICAgXSxcbiAgICAqICAgICAgICBcIlJlc291cmNlXCI6IFwiYXJuOmF3czpzMzo6OmJ1Y2tldC1uYW1lL29iamVjdC1uYW1lXCJcbiAgICAqICB9XVxuICAgICp9XG4gICAgKlxuICAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3NlY3VyaXR5X2lhbV9pZC1iYXNlZC1wb2xpY3ktZXhhbXBsZXMuaHRtbCNzZWN1cml0eV9pYW1faWQtYmFzZWQtcG9saWN5LWV4YW1wbGVzLWFjY2Vzcy1zdG9yYWdlLWxvY1xuICAgICpcbiAgICAqIEBkZWZhdWx0IC0gYSByb2xlIHdpbGwgYmUgY3JlYXRlZCB3aXRoIGRlZmF1bHQgcGVybWlzc2lvbnMuXG4gICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcbn1cblxuLyoqXG4gKiBBIEdhbWVMaWZ0IGJ1aWxkLCB0aGF0IGlzIGluc3RhbGxlZCBhbmQgcnVucyBvbiBpbnN0YW5jZXMgaW4gYW4gQW1hem9uIEdhbWVMaWZ0IGZsZWV0LiBJdCBjb25zaXN0cyBvZlxuICogYSB6aXAgZmlsZSB3aXRoIGFsbCBvZiB0aGUgY29tcG9uZW50cyBvZiB0aGUgZ2FtZSBzZXJ2ZXIgYnVpbGQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LWJ1aWxkLWNsaS11cGxvYWRpbmcuaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpCdWlsZFxuICovXG5leHBvcnQgY2xhc3MgQnVpbGQgZXh0ZW5kcyBCdWlsZEJhc2Uge1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgQnVpbGQgZnJvbSBzMyBjb250ZW50XG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1Y2tldChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nLCBvYmplY3RWZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGNvbnRlbnQ6IENvbnRlbnQuZnJvbUJ1Y2tldChidWNrZXQsIGtleSwgb2JqZWN0VmVyc2lvbiksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IEJ1aWxkIGZyb20gYXNzZXQgY29udGVudFxuICAgKi9cbiAgc3RhdGljIGZyb21Bc3NldChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBzM19hc3NldHMuQXNzZXRPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGNvbnRlbnQ6IENvbnRlbnQuZnJvbUFzc2V0KHBhdGgsIG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAgICogSW1wb3J0IGEgYnVpbGQgaW50byBDREsgdXNpbmcgaXRzIGlkZW50aWZpZXJcbiAgICAgKi9cbiAgc3RhdGljIGZyb21CdWlsZElkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGJ1aWxkSWQ6IHN0cmluZyk6IElCdWlsZCB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJ1aWxkQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgYnVpbGRJZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgYnVpbGQgZnJvbSBpdHMgYXR0cmlidXRlcy5cbiAgICovXG4gIHN0YXRpYyBmcm9tQnVpbGRBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBCdWlsZEF0dHJpYnV0ZXMpOiBJQnVpbGQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEJ1aWxkQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRJZCA9IGF0dHJzLmJ1aWxkSWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBhdHRycy5yb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIEdhbWVMaWZ0IGFzc3VtZXMgdG8gYWNjY2VzcyBzZXJ2ZXIgYnVpbGQgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdGhpcyBHYW1lTGlmdCBCdWlsZCBpcyB1c2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuYnVpbGROYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmJ1aWxkTmFtZSAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5idWlsZE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuYnVpbGROYW1lLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCdWlsZCBuYW1lIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMTAyNCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5idWlsZE5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHByb3BzLnJvbGUgPz8gbmV3IGlhbS5Sb2xlKHRoaXMsICdTZXJ2aWNlUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdnYW1lbGlmdC5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcbiAgICBjb25zdCBjb250ZW50ID0gcHJvcHMuY29udGVudC5iaW5kKHRoaXMsIHRoaXMucm9sZSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5CdWlsZCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5idWlsZE5hbWUsXG4gICAgICB2ZXJzaW9uOiBwcm9wcy5idWlsZFZlcnNpb24sXG4gICAgICBvcGVyYXRpbmdTeXN0ZW06IHByb3BzLm9wZXJhdGluZ1N5c3RlbSxcbiAgICAgIHN0b3JhZ2VMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXQ6IGNvbnRlbnQuczNMb2NhdGlvbiAmJiBjb250ZW50LnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAga2V5OiBjb250ZW50LnMzTG9jYXRpb24gJiYgY29udGVudC5zM0xvY2F0aW9uLm9iamVjdEtleSxcbiAgICAgICAgb2JqZWN0VmVyc2lvbjogY29udGVudC5zM0xvY2F0aW9uICYmIGNvbnRlbnQuczNMb2NhdGlvbi5vYmplY3RWZXJzaW9uLFxuICAgICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yb2xlKTtcblxuICAgIHRoaXMuYnVpbGRJZCA9IHJlc291cmNlLnJlZjtcbiAgfVxuXG5cbn1cbiJdfQ==
package/lib/content.d.ts CHANGED
@@ -23,7 +23,7 @@ export declare abstract class Content {
23
23
  /**
24
24
  * Called when the Build is initialized to allow this object to bind
25
25
  */
26
- abstract bind(scope: Construct, grantable: iam.IGrantable): ContentConfig;
26
+ abstract bind(scope: Construct, role: iam.IRole): ContentConfig;
27
27
  }
28
28
  /**
29
29
  * Result of binding `Content` into a `Build`.
@@ -42,7 +42,7 @@ export declare class S3Content extends Content {
42
42
  private key;
43
43
  private objectVersion?;
44
44
  constructor(bucket: s3.IBucket, key: string, objectVersion?: string | undefined);
45
- bind(_scope: Construct, grantable: iam.IGrantable): ContentConfig;
45
+ bind(_scope: Construct, role: iam.IRole): ContentConfig;
46
46
  }
47
47
  /**
48
48
  * Game content from a local directory.
@@ -55,5 +55,5 @@ export declare class AssetContent extends Content {
55
55
  * @param path The path to the asset file or directory.
56
56
  */
57
57
  constructor(path: string, options?: s3_assets.AssetOptions);
58
- bind(scope: Construct, grantable: iam.IGrantable): ContentConfig;
58
+ bind(scope: Construct, role: iam.IRole): ContentConfig;
59
59
  }
package/lib/content.js CHANGED
@@ -3,6 +3,8 @@ var _a, _b, _c;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.AssetContent = exports.S3Content = exports.Content = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const iam = require("aws-cdk-lib/aws-iam");
7
+ const s3 = require("aws-cdk-lib/aws-s3");
6
8
  const s3_assets = require("aws-cdk-lib/aws-s3-assets");
7
9
  const cdk = require("aws-cdk-lib");
8
10
  /**
@@ -30,7 +32,7 @@ class Content {
30
32
  }
31
33
  exports.Content = Content;
32
34
  _a = JSII_RTTI_SYMBOL_1;
33
- Content[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.49.1-alpha.0" };
35
+ Content[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.51.0-alpha.0" };
34
36
  /**
35
37
  * Game content from an S3 archive.
36
38
  */
@@ -44,8 +46,13 @@ class S3Content extends Content {
44
46
  throw new Error('bucketName is undefined for the provided bucket');
45
47
  }
46
48
  }
47
- bind(_scope, grantable) {
48
- this.bucket.grantRead(grantable, this.key);
49
+ bind(_scope, role) {
50
+ // Adding permission to access specific content
51
+ role.addToPrincipalPolicy(new iam.PolicyStatement({
52
+ effect: iam.Effect.ALLOW,
53
+ resources: [this.bucket.arnForObjects(this.key)],
54
+ actions: ['s3:GetObject', 's3:GetObjectVersion'],
55
+ }));
49
56
  return {
50
57
  s3Location: {
51
58
  bucketName: this.bucket.bucketName,
@@ -57,7 +64,7 @@ class S3Content extends Content {
57
64
  }
58
65
  exports.S3Content = S3Content;
59
66
  _b = JSII_RTTI_SYMBOL_1;
60
- S3Content[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.49.1-alpha.0" };
67
+ S3Content[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.51.0-alpha.0" };
61
68
  /**
62
69
  * Game content from a local directory.
63
70
  */
@@ -70,7 +77,7 @@ class AssetContent extends Content {
70
77
  this.path = path;
71
78
  this.options = options;
72
79
  }
73
- bind(scope, grantable) {
80
+ bind(scope, role) {
74
81
  // If the same AssetContent is used multiple times, retain only the first instantiation.
75
82
  if (!this.asset) {
76
83
  this.asset = new s3_assets.Asset(scope, 'Content', {
@@ -82,7 +89,13 @@ class AssetContent extends Content {
82
89
  throw new Error(`Asset is already associated with another stack '${cdk.Stack.of(this.asset).stackName}'. ` +
83
90
  'Create a new Content instance for every stack.');
84
91
  }
85
- this.asset.grantRead(grantable);
92
+ const bucket = s3.Bucket.fromBucketName(scope, 'AssetBucket', this.asset.s3BucketName);
93
+ // Adding permission to access specific content
94
+ role.addToPrincipalPolicy(new iam.PolicyStatement({
95
+ effect: iam.Effect.ALLOW,
96
+ resources: [bucket.arnForObjects(this.asset.s3ObjectKey)],
97
+ actions: ['s3:GetObject', 's3:GetObjectVersion'],
98
+ }));
86
99
  if (!this.asset.isZipArchive) {
87
100
  throw new Error(`Asset must be a .zip file or a directory (${this.path})`);
88
101
  }
@@ -96,5 +109,5 @@ class AssetContent extends Content {
96
109
  }
97
110
  exports.AssetContent = AssetContent;
98
111
  _c = JSII_RTTI_SYMBOL_1;
99
- AssetContent[_c] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.49.1-alpha.0" };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1REFBdUQ7QUFDdkQsbUNBQW1DO0FBR25DOzs7R0FHRztBQUNILE1BQXNCLE9BQU87SUFDM0I7Ozs7O1NBS0s7SUFDRSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsR0FBVyxFQUFFLGFBQXNCO1FBQzlFLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztLQUNsRDtJQUdEOzs7O1NBSUs7SUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxPQUFnQztRQUNwRSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN4Qzs7QUFuQkgsMEJBMEJDOzs7QUFZRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLE9BQU87SUFFcEMsWUFBNkIsTUFBa0IsRUFBVSxHQUFXLEVBQVUsYUFBc0I7UUFDbEcsS0FBSyxFQUFFLENBQUM7UUFEbUIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUVsRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDcEU7S0FDRjtJQUVNLElBQUksQ0FBQyxNQUFpQixFQUFFLFNBQXlCO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2dCQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNsQztTQUNGLENBQUM7S0FDSDs7QUFsQkgsOEJBbUJDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLE9BQU87SUFHdkM7O09BRUc7SUFDSCxZQUE0QixJQUFZLEVBQW1CLFVBQWtDLEVBQUc7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEa0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUE4QjtLQUUvRjtJQUVNLElBQUksQ0FBQyxLQUFnQixFQUFFLFNBQXlCO1FBQ3JELHdGQUF3RjtRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ2pELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ2hCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsS0FBSztnQkFDeEcsZ0RBQWdELENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtnQkFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzthQUNsQztTQUNGLENBQUM7S0FDSDs7QUFqQ0gsb0NBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBCZWZvcmUgZGVwbG95aW5nIHlvdXIgR2FtZUxpZnQtZW5hYmxlZCBtdWx0aXBsYXllciBnYW1lIHNlcnZlcnMgZm9yIGhvc3Rpbmcgd2l0aCB0aGUgR2FtZUxpZnQgc2VydmljZSwgeW91IG5lZWQgdG8gdXBsb2FkIHlvdXIgZ2FtZSBzZXJ2ZXIgZmlsZXMuXG4gKiBUaGUgY2xhc3MgaGVscHMgeW91IG9uIHByZXBhcmluZyBhbmQgdXBsb2FkaW5nIGN1c3RvbSBnYW1lIHNlcnZlciBidWlsZCBmaWxlcyBvciBSZWFsdGltZSBTZXJ2ZXJzIHNlcnZlciBzY3JpcHQgZmlsZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50IHtcbiAgLyoqXG4gICAgICogR2FtZSBjb250ZW50IGFzIGFuIFMzIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gYnVja2V0IFRoZSBTMyBidWNrZXRcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBvYmplY3Qga2V5XG4gICAgICogQHBhcmFtIG9iamVjdFZlcnNpb24gT3B0aW9uYWwgUzMgb2IgamVjdCB2ZXJzaW9uXG4gICAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldChidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nLCBvYmplY3RWZXJzaW9uPzogc3RyaW5nKTogUzNDb250ZW50IHtcbiAgICByZXR1cm4gbmV3IFMzQ29udGVudChidWNrZXQsIGtleSwgb2JqZWN0VmVyc2lvbik7XG4gIH1cblxuXG4gIC8qKlxuICAgICAqIExvYWRzIHRoZSBnYW1lIGNvbnRlbnQgZnJvbSBhIGxvY2FsIGRpc2sgcGF0aC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIEVpdGhlciBhIGRpcmVjdG9yeSB3aXRoIHRoZSBnYW1lIGNvbnRlbnQgYnVuZGxlIG9yIGEgLnppcCBmaWxlXG4gICAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0KHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMpOiBBc3NldENvbnRlbnQge1xuICAgIHJldHVybiBuZXcgQXNzZXRDb250ZW50KHBhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIEJ1aWxkIGlzIGluaXRpYWxpemVkIHRvIGFsbG93IHRoaXMgb2JqZWN0IHRvIGJpbmRcbiAgICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgZ3JhbnRhYmxlOiBpYW0uSUdyYW50YWJsZSk6IENvbnRlbnRDb25maWc7XG5cbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYmluZGluZyBgQ29udGVudGAgaW50byBhIGBCdWlsZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGNvbnRlbnQgaW4gUzMuXG4gICAqL1xuICByZWFkb25seSBzM0xvY2F0aW9uOiBzMy5Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBHYW1lIGNvbnRlbnQgZnJvbSBhbiBTMyBhcmNoaXZlLlxuICovXG5leHBvcnQgY2xhc3MgUzNDb250ZW50IGV4dGVuZHMgQ29udGVudCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQsIHByaXZhdGUga2V5OiBzdHJpbmcsIHByaXZhdGUgb2JqZWN0VmVyc2lvbj86IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFidWNrZXQuYnVja2V0TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdidWNrZXROYW1lIGlzIHVuZGVmaW5lZCBmb3IgdGhlIHByb3ZpZGVkIGJ1Y2tldCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0LCBncmFudGFibGU6IGlhbS5JR3JhbnRhYmxlKTogQ29udGVudENvbmZpZyB7XG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKGdyYW50YWJsZSwgdGhpcy5rZXkpO1xuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5rZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub2JqZWN0VmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEdhbWUgY29udGVudCBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRDb250ZW50IGV4dGVuZHMgQ29udGVudCB7XG4gIHByaXZhdGUgYXNzZXQ/OiBzM19hc3NldHMuQXNzZXQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHRoZSBhc3NldCBmaWxlIG9yIGRpcmVjdG9yeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHsgfSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBncmFudGFibGU6IGlhbS5JR3JhbnRhYmxlKTogQ29udGVudENvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb250ZW50IGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM19hc3NldHMuQXNzZXQoc2NvcGUsICdDb250ZW50Jywge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpICE9PSBjZGsuU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7Y2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZX0nLiBgICtcbiAgICAgICAgJ0NyZWF0ZSBhIG5ldyBDb250ZW50IGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nKTtcbiAgICB9XG4gICAgdGhpcy5hc3NldC5ncmFudFJlYWQoZ3JhbnRhYmxlKTtcblxuICAgIGlmICghdGhpcy5hc3NldC5pc1ppcEFyY2hpdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgbXVzdCBiZSBhIC56aXAgZmlsZSBvciBhIGRpcmVjdG9yeSAoJHt0aGlzLnBhdGh9KWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
112
+ AssetContent[_c] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.51.0-alpha.0" };
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLHVEQUF1RDtBQUN2RCxtQ0FBbUM7QUFHbkM7OztHQUdHO0FBQ0gsTUFBc0IsT0FBTztJQUMzQjs7Ozs7U0FLSztJQUNFLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBa0IsRUFBRSxHQUFXLEVBQUUsYUFBc0I7UUFDOUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ2xEO0lBR0Q7Ozs7U0FJSztJQUNFLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWdDO1FBQ3BFLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDOztBQW5CSCwwQkEwQkM7OztBQVlEOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsT0FBTztJQUVwQyxZQUE2QixNQUFrQixFQUFVLEdBQVcsRUFBVSxhQUFzQjtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBRWxHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUNwRTtLQUNGO0lBRU0sSUFBSSxDQUFDLE1BQWlCLEVBQUUsSUFBZTtRQUM1QywrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUNoRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUM7U0FDakQsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPO1lBQ0wsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ2xDO1NBQ0YsQ0FBQztLQUNIOztBQXhCSCw4QkF5QkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsT0FBTztJQUd2Qzs7T0FFRztJQUNILFlBQTRCLElBQVksRUFBbUIsVUFBa0MsRUFBRztRQUM5RixLQUFLLEVBQUUsQ0FBQztRQURrQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQThCO0tBRS9GO0lBRU0sSUFBSSxDQUFDLEtBQWdCLEVBQUUsSUFBZTtRQUMzQyx3RkFBd0Y7UUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNqRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNoQixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEtBQUs7Z0JBQ3hHLGdEQUFnRCxDQUFDLENBQUM7U0FDckQ7UUFDRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdkYsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDaEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDO1NBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2FBQ2xDO1NBQ0YsQ0FBQztLQUNIOztBQXhDSCxvQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNfYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEJlZm9yZSBkZXBsb3lpbmcgeW91ciBHYW1lTGlmdC1lbmFibGVkIG11bHRpcGxheWVyIGdhbWUgc2VydmVycyBmb3IgaG9zdGluZyB3aXRoIHRoZSBHYW1lTGlmdCBzZXJ2aWNlLCB5b3UgbmVlZCB0byB1cGxvYWQgeW91ciBnYW1lIHNlcnZlciBmaWxlcy5cbiAqIFRoZSBjbGFzcyBoZWxwcyB5b3Ugb24gcHJlcGFyaW5nIGFuZCB1cGxvYWRpbmcgY3VzdG9tIGdhbWUgc2VydmVyIGJ1aWxkIGZpbGVzIG9yIFJlYWx0aW1lIFNlcnZlcnMgc2VydmVyIHNjcmlwdCBmaWxlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRlbnQge1xuICAvKipcbiAgICAgKiBHYW1lIGNvbnRlbnQgYXMgYW4gUzMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldFxuICAgICAqIEBwYXJhbSBrZXkgVGhlIG9iamVjdCBrZXlcbiAgICAgKiBAcGFyYW0gb2JqZWN0VmVyc2lvbiBPcHRpb25hbCBTMyBvYiBqZWN0IHZlcnNpb25cbiAgICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVja2V0KGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcsIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpOiBTM0NvbnRlbnQge1xuICAgIHJldHVybiBuZXcgUzNDb250ZW50KGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAgICogTG9hZHMgdGhlIGdhbWUgY29udGVudCBmcm9tIGEgbG9jYWwgZGlzayBwYXRoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggRWl0aGVyIGEgZGlyZWN0b3J5IHdpdGggdGhlIGdhbWUgY29udGVudCBidW5kbGUgb3IgYSAuemlwIGZpbGVcbiAgICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQocGF0aDogc3RyaW5nLCBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyk6IEFzc2V0Q29udGVudCB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvbnRlbnQocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgQnVpbGQgaXMgaW5pdGlhbGl6ZWQgdG8gYWxsb3cgdGhpcyBvYmplY3QgdG8gYmluZFxuICAgICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0LCByb2xlOiBpYW0uSVJvbGUpOiBDb250ZW50Q29uZmlnO1xuXG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGJpbmRpbmcgYENvbnRlbnRgIGludG8gYSBgQnVpbGRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGluIFMzLlxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbjogczMuTG9jYXRpb247XG59XG5cbi8qKlxuICogR2FtZSBjb250ZW50IGZyb20gYW4gUzMgYXJjaGl2ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFMzQ29udGVudCBleHRlbmRzIENvbnRlbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0LCBwcml2YXRlIGtleTogc3RyaW5nLCBwcml2YXRlIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghYnVja2V0LmJ1Y2tldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVja2V0TmFtZSBpcyB1bmRlZmluZWQgZm9yIHRoZSBwcm92aWRlZCBidWNrZXQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgcm9sZTogaWFtLklSb2xlKTogQ29udGVudENvbmZpZyB7XG4gICAgLy8gQWRkaW5nIHBlcm1pc3Npb24gdG8gYWNjZXNzIHNwZWNpZmljIGNvbnRlbnRcbiAgICByb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIHJlc291cmNlczogW3RoaXMuYnVja2V0LmFybkZvck9iamVjdHModGhpcy5rZXkpXSxcbiAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkdldE9iamVjdFZlcnNpb24nXSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMua2V5LFxuICAgICAgICBvYmplY3RWZXJzaW9uOiB0aGlzLm9iamVjdFZlcnNpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBHYW1lIGNvbnRlbnQgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0Q29udGVudCBleHRlbmRzIENvbnRlbnQge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgYXNzZXQgZmlsZSBvciBkaXJlY3RvcnkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7IH0pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcm9sZTogaWFtLklSb2xlKTogQ29udGVudENvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb250ZW50IGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM19hc3NldHMuQXNzZXQoc2NvcGUsICdDb250ZW50Jywge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpICE9PSBjZGsuU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7Y2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZX0nLiBgICtcbiAgICAgICAgJ0NyZWF0ZSBhIG5ldyBDb250ZW50IGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nKTtcbiAgICB9XG4gICAgY29uc3QgYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHNjb3BlLCAnQXNzZXRCdWNrZXQnLCB0aGlzLmFzc2V0LnMzQnVja2V0TmFtZSk7XG5cbiAgICAvLyBBZGRpbmcgcGVybWlzc2lvbiB0byBhY2Nlc3Mgc3BlY2lmaWMgY29udGVudFxuICAgIHJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcmVzb3VyY2VzOiBbYnVja2V0LmFybkZvck9iamVjdHModGhpcy5hc3NldC5zM09iamVjdEtleSldLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnLCAnczM6R2V0T2JqZWN0VmVyc2lvbiddLFxuICAgIH0pKTtcblxuICAgIGlmICghdGhpcy5hc3NldC5pc1ppcEFyY2hpdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgbXVzdCBiZSBhIC56aXAgZmlsZSBvciBhIGRpcmVjdG9yeSAoJHt0aGlzLnBhdGh9KWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==