terraform-cdk-serverless-github-actions-runner-controller 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3571 -2
- package/lib/__tests__/index-test.js +16 -4
- package/lib/lib/aws.d.ts +4 -0
- package/lib/lib/aws.js +391 -0
- package/lib/lib/azure.js +1 -1
- package/lib/lib/gcp.d.ts +4 -0
- package/lib/lib/gcp.js +247 -0
- package/lib/tfModules.js +17 -1
- package/modules/azure-container-apps/README.md +1 -1
- package/modules/elastic-container-service/README.md +66 -0
- package/modules/elastic-container-service/cdk.tf.json +314 -0
- package/modules/google-cloud-run/README.md +62 -0
- package/modules/google-cloud-run/cdk.tf.json +355 -0
- package/package.json +8 -1
@@ -3,12 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const cdktf_1 = require("cdktf");
|
4
4
|
require("cdktf/lib/testing/adapters/jest");
|
5
5
|
const azure_1 = require("../lib/azure");
|
6
|
+
const gcp_1 = require("../lib/gcp");
|
7
|
+
const aws_1 = require("../lib/aws");
|
6
8
|
// To learn more about testing see cdk.tf/testing
|
7
|
-
describe("
|
8
|
-
it("
|
9
|
+
describe("Should synthesize snapshot for construct", () => {
|
10
|
+
it("Azure", () => {
|
9
11
|
expect(cdktf_1.Testing.synthScope((scope) => {
|
10
|
-
new azure_1.Azure(scope, "
|
12
|
+
new azure_1.Azure(scope, "azure");
|
13
|
+
})).toMatchSnapshot();
|
14
|
+
});
|
15
|
+
it("Aws", () => {
|
16
|
+
expect(cdktf_1.Testing.synthScope((scope) => {
|
17
|
+
new aws_1.Aws(scope, "aws");
|
18
|
+
})).toMatchSnapshot();
|
19
|
+
});
|
20
|
+
it("Google", () => {
|
21
|
+
expect(cdktf_1.Testing.synthScope((scope) => {
|
22
|
+
new gcp_1.Gcp(scope, "google");
|
11
23
|
})).toMatchSnapshot();
|
12
24
|
});
|
13
25
|
});
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgtdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFnQztBQUNoQywyQ0FBeUM7QUFDekMsd0NBQXFDO0FBQ3JDLG9DQUFpQztBQUNqQyxvQ0FBaUM7QUFFakMsaURBQWlEO0FBQ2pELFFBQVEsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7SUFDeEQsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDZixNQUFNLENBQ0osZUFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksYUFBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDYixNQUFNLENBQ0osZUFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksU0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FDSCxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDaEIsTUFBTSxDQUNKLGVBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQixJQUFJLFNBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgQXp1cmUgfSBmcm9tIFwiLi4vbGliL2F6dXJlXCI7XG5pbXBvcnQgeyBHY3AgfSBmcm9tIFwiLi4vbGliL2djcFwiO1xuaW1wb3J0IHsgQXdzIH0gZnJvbSBcIi4uL2xpYi9hd3NcIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJTaG91bGQgc3ludGhlc2l6ZSBzbmFwc2hvdCBmb3IgY29uc3RydWN0XCIsICgpID0+IHtcbiAgaXQoXCJBenVyZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5zeW50aFNjb3BlKChzY29wZSkgPT4ge1xuICAgICAgICBuZXcgQXp1cmUoc2NvcGUsIFwiYXp1cmVcIik7XG4gICAgICB9KVxuICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KFwiQXdzXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLnN5bnRoU2NvcGUoKHNjb3BlKSA9PiB7XG4gICAgICAgIG5ldyBBd3Moc2NvcGUsIFwiYXdzXCIpO1xuICAgICAgfSlcbiAgICApLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcblxuICBpdChcIkdvb2dsZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5zeW50aFNjb3BlKChzY29wZSkgPT4ge1xuICAgICAgICBuZXcgR2NwKHNjb3BlLCBcImdvb2dsZVwiKTtcbiAgICAgIH0pXG4gICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTsiXX0=
|
package/lib/lib/aws.d.ts
ADDED
package/lib/lib/aws.js
ADDED
@@ -0,0 +1,391 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Aws = void 0;
|
4
|
+
const cloudwatch_log_group_1 = require("@cdktf/provider-aws/lib/cloudwatch-log-group");
|
5
|
+
const data_aws_caller_identity_1 = require("@cdktf/provider-aws/lib/data-aws-caller-identity");
|
6
|
+
const data_aws_region_1 = require("@cdktf/provider-aws/lib/data-aws-region");
|
7
|
+
const data_aws_security_groups_1 = require("@cdktf/provider-aws/lib/data-aws-security-groups");
|
8
|
+
const data_aws_subnets_1 = require("@cdktf/provider-aws/lib/data-aws-subnets");
|
9
|
+
const ecs_cluster_1 = require("@cdktf/provider-aws/lib/ecs-cluster");
|
10
|
+
const ecs_service_1 = require("@cdktf/provider-aws/lib/ecs-service");
|
11
|
+
const ecs_task_definition_1 = require("@cdktf/provider-aws/lib/ecs-task-definition");
|
12
|
+
const iam_policy_1 = require("@cdktf/provider-aws/lib/iam-policy");
|
13
|
+
const iam_role_1 = require("@cdktf/provider-aws/lib/iam-role");
|
14
|
+
const iam_role_policy_attachment_1 = require("@cdktf/provider-aws/lib/iam-role-policy-attachment");
|
15
|
+
const provider_1 = require("@cdktf/provider-aws/lib/provider");
|
16
|
+
const cdktf_1 = require("cdktf");
|
17
|
+
const constructs_1 = require("constructs");
|
18
|
+
const variables_1 = require("./variables");
|
19
|
+
const efs_file_system_1 = require("@cdktf/provider-aws/lib/efs-file-system");
|
20
|
+
const efs_mount_target_1 = require("@cdktf/provider-aws/lib/efs-mount-target");
|
21
|
+
class Aws extends constructs_1.Construct {
|
22
|
+
constructor(scope, id) {
|
23
|
+
super(scope, id);
|
24
|
+
new provider_1.AwsProvider(this, 'aws', {});
|
25
|
+
const identity = new data_aws_caller_identity_1.DataAwsCallerIdentity(this, 'Identity', {});
|
26
|
+
const region = new data_aws_region_1.DataAwsRegion(this, 'Region', {});
|
27
|
+
const { pat, githubConfigUrl } = (0, variables_1.commonVariables)(this);
|
28
|
+
const cluster = new ecs_cluster_1.EcsCluster(this, 'Cluster', {
|
29
|
+
name: 'gha-runner-cluster',
|
30
|
+
});
|
31
|
+
const runnerRole = new iam_role_1.IamRole(this, 'RunnerRole', {
|
32
|
+
assumeRolePolicy: cdktf_1.Fn.jsonencode({
|
33
|
+
'Version': '2012-10-17',
|
34
|
+
'Statement': [
|
35
|
+
{
|
36
|
+
'Effect': 'Allow',
|
37
|
+
'Principal': {
|
38
|
+
'Service': 'ecs-tasks.amazonaws.com'
|
39
|
+
},
|
40
|
+
'Action': 'sts:AssumeRole'
|
41
|
+
}
|
42
|
+
]
|
43
|
+
})
|
44
|
+
});
|
45
|
+
const autoscalerRole = new iam_role_1.IamRole(this, 'AutoscalerRole', {
|
46
|
+
assumeRolePolicy: cdktf_1.Fn.jsonencode({
|
47
|
+
'Version': '2012-10-17',
|
48
|
+
'Statement': [
|
49
|
+
{
|
50
|
+
'Effect': 'Allow',
|
51
|
+
'Principal': {
|
52
|
+
'Service': 'ecs-tasks.amazonaws.com'
|
53
|
+
},
|
54
|
+
'Action': 'sts:AssumeRole'
|
55
|
+
}
|
56
|
+
]
|
57
|
+
})
|
58
|
+
});
|
59
|
+
const ecsTaskExecutionRole = new iam_role_1.IamRole(this, 'TaskExecutionRole', {
|
60
|
+
assumeRolePolicy: cdktf_1.Fn.jsonencode({
|
61
|
+
'Version': '2012-10-17',
|
62
|
+
'Statement': [
|
63
|
+
{
|
64
|
+
'Effect': 'Allow',
|
65
|
+
'Principal': {
|
66
|
+
'Service': 'ecs-tasks.amazonaws.com'
|
67
|
+
},
|
68
|
+
'Action': 'sts:AssumeRole'
|
69
|
+
}
|
70
|
+
]
|
71
|
+
}),
|
72
|
+
managedPolicyArns: [
|
73
|
+
'arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy'
|
74
|
+
]
|
75
|
+
});
|
76
|
+
const runnerLogGroup = new cloudwatch_log_group_1.CloudwatchLogGroup(this, 'RunnerLogGroup', {
|
77
|
+
name: '/ecs/GHA',
|
78
|
+
});
|
79
|
+
const autoscalerLogGroup = new cloudwatch_log_group_1.CloudwatchLogGroup(this, 'AutoscalerLogGroup', {
|
80
|
+
name: '/ecs/Autoscaler',
|
81
|
+
});
|
82
|
+
const subnets = new data_aws_subnets_1.DataAwsSubnets(this, 'Subnets', {});
|
83
|
+
const securityGroups = new data_aws_security_groups_1.DataAwsSecurityGroups(this, 'SecurityGroups');
|
84
|
+
// EFS volume to allow sharing data between tasks
|
85
|
+
const efs = new efs_file_system_1.EfsFileSystem(this, 'efs', {
|
86
|
+
throughputMode: 'elastic',
|
87
|
+
tags: {
|
88
|
+
Name: 'work'
|
89
|
+
}
|
90
|
+
});
|
91
|
+
const externalsEfs = new efs_file_system_1.EfsFileSystem(this, 'externalsEfs', {
|
92
|
+
throughputMode: 'elastic',
|
93
|
+
tags: {
|
94
|
+
Name: 'externals'
|
95
|
+
}
|
96
|
+
});
|
97
|
+
// Each subnet in VPC are on different AZs, so creating mountpoint to each
|
98
|
+
const iterator = cdktf_1.TerraformIterator.fromList(subnets.ids);
|
99
|
+
new efs_mount_target_1.EfsMountTarget(this, 'EfsMountTarget', {
|
100
|
+
forEach: iterator,
|
101
|
+
fileSystemId: efs.id,
|
102
|
+
subnetId: iterator.value
|
103
|
+
});
|
104
|
+
new efs_mount_target_1.EfsMountTarget(this, 'ExternalsEfsMountTarget', {
|
105
|
+
forEach: iterator,
|
106
|
+
fileSystemId: externalsEfs.id,
|
107
|
+
subnetId: iterator.value
|
108
|
+
});
|
109
|
+
const runnerVolumeName = 'work';
|
110
|
+
const externalsVolumeName = 'externals';
|
111
|
+
const runnerContainerDefinitions = [
|
112
|
+
{
|
113
|
+
name: 'runner',
|
114
|
+
image: 'ghcr.io/hi-fi/actions-runner:ecs',
|
115
|
+
command: ['/bin/sh', '-c', 'export EXECID=$(cat /proc/sys/kernel/random/uuid) && sudo mkdir -p /tmp/_work/$EXECID && sudo chown runner:runner /tmp/_work/$EXECID && ln -s /tmp/_work/$EXECID _work && sudo chown runner:runner /tmp/externals && /home/runner/run.sh ; sudo rm -r /tmp/_work/$EXECID'],
|
116
|
+
essential: true,
|
117
|
+
environment: [
|
118
|
+
{
|
119
|
+
name: 'EFS_ID',
|
120
|
+
value: efs.id
|
121
|
+
},
|
122
|
+
{
|
123
|
+
name: 'EXTERNALS_EFS_ID',
|
124
|
+
value: externalsEfs.id
|
125
|
+
},
|
126
|
+
{
|
127
|
+
name: 'ECS_CLUSTER_NAME',
|
128
|
+
value: cluster.name
|
129
|
+
},
|
130
|
+
{
|
131
|
+
name: 'ACTIONS_RUNNER_POD_NAME',
|
132
|
+
value: 'gha-pod'
|
133
|
+
},
|
134
|
+
{
|
135
|
+
name: 'ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER',
|
136
|
+
value: 'false'
|
137
|
+
},
|
138
|
+
{
|
139
|
+
name: 'ECS_SUBNETS',
|
140
|
+
value: cdktf_1.Fn.join(',', subnets.ids)
|
141
|
+
},
|
142
|
+
{
|
143
|
+
name: 'ECS_SECURITY_GROUPS',
|
144
|
+
value: cdktf_1.Fn.join(',', securityGroups.ids)
|
145
|
+
},
|
146
|
+
{
|
147
|
+
name: 'ECS_TASK_ROLE',
|
148
|
+
value: runnerRole.arn
|
149
|
+
},
|
150
|
+
{
|
151
|
+
name: 'ECS_EXECUTION_ROLE',
|
152
|
+
value: ecsTaskExecutionRole.arn
|
153
|
+
}
|
154
|
+
],
|
155
|
+
mountPoints: [
|
156
|
+
{
|
157
|
+
sourceVolume: runnerVolumeName,
|
158
|
+
containerPath: '/tmp/_work',
|
159
|
+
},
|
160
|
+
{
|
161
|
+
sourceVolume: externalsVolumeName,
|
162
|
+
containerPath: '/tmp/externals',
|
163
|
+
}
|
164
|
+
],
|
165
|
+
logConfiguration: {
|
166
|
+
logDriver: 'awslogs',
|
167
|
+
options: {
|
168
|
+
"awslogs-group": runnerLogGroup.name,
|
169
|
+
"awslogs-region": region.name,
|
170
|
+
"awslogs-stream-prefix": "ecs",
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
];
|
175
|
+
// TODO: Images through caching: https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache.html (requires authentication)
|
176
|
+
// TODO: Pass Execution role to job task: https://www.ernestchiang.com/en/posts/2021/using-amazon-ecs-exec/#1-grant-permissions-ecs-task-iam-role
|
177
|
+
// TODO: Pass Task role to job task
|
178
|
+
const runnerTaskDefinition = new ecs_task_definition_1.EcsTaskDefinition(this, 'RunnerTaskDefinition', {
|
179
|
+
family: 'GHA',
|
180
|
+
taskRoleArn: runnerRole.arn,
|
181
|
+
executionRoleArn: ecsTaskExecutionRole.arn,
|
182
|
+
containerDefinitions: cdktf_1.Fn.jsonencode(runnerContainerDefinitions),
|
183
|
+
cpu: '1024',
|
184
|
+
memory: '2048',
|
185
|
+
requiresCompatibilities: [
|
186
|
+
'FARGATE'
|
187
|
+
],
|
188
|
+
runtimePlatform: {
|
189
|
+
cpuArchitecture: 'X86_64',
|
190
|
+
operatingSystemFamily: 'LINUX'
|
191
|
+
},
|
192
|
+
networkMode: 'awsvpc',
|
193
|
+
volume: [
|
194
|
+
{
|
195
|
+
name: runnerVolumeName,
|
196
|
+
efsVolumeConfiguration: {
|
197
|
+
fileSystemId: efs.id,
|
198
|
+
},
|
199
|
+
},
|
200
|
+
// This doesn't work with same volume, as volume is initially empty so it can't map to it's "externals" directory
|
201
|
+
{
|
202
|
+
name: externalsVolumeName,
|
203
|
+
efsVolumeConfiguration: {
|
204
|
+
fileSystemId: externalsEfs.id,
|
205
|
+
}
|
206
|
+
}
|
207
|
+
]
|
208
|
+
});
|
209
|
+
const autoscalerTaskDefinition = new ecs_task_definition_1.EcsTaskDefinition(this, 'AutoscalerTaskDefinition', {
|
210
|
+
family: 'Autoscaler',
|
211
|
+
taskRoleArn: autoscalerRole.arn,
|
212
|
+
executionRoleArn: ecsTaskExecutionRole.arn,
|
213
|
+
containerDefinitions: cdktf_1.Fn.jsonencode([
|
214
|
+
{
|
215
|
+
name: 'autoscaler',
|
216
|
+
image: 'ghcr.io/hi-fi/gha-runners-on-managed-env:test',
|
217
|
+
essential: true,
|
218
|
+
environment: [
|
219
|
+
{
|
220
|
+
name: 'PAT',
|
221
|
+
value: pat.value
|
222
|
+
},
|
223
|
+
{
|
224
|
+
name: 'GITHUB_CONFIG_URL',
|
225
|
+
value: githubConfigUrl.value
|
226
|
+
},
|
227
|
+
{
|
228
|
+
name: 'TASK_DEFINITION_ARN',
|
229
|
+
value: runnerTaskDefinition.arn
|
230
|
+
},
|
231
|
+
{
|
232
|
+
name: 'ECS_CLUSTER',
|
233
|
+
value: cluster.arn
|
234
|
+
},
|
235
|
+
{
|
236
|
+
name: 'ECS_SUBNETS',
|
237
|
+
value: cdktf_1.Fn.join(',', subnets.ids)
|
238
|
+
},
|
239
|
+
{
|
240
|
+
name: 'ECS_SECURITY_GROUPS',
|
241
|
+
value: cdktf_1.Fn.join(',', securityGroups.ids)
|
242
|
+
},
|
243
|
+
{
|
244
|
+
name: 'SCALE_SET_NAME',
|
245
|
+
value: 'ecs-runner-set'
|
246
|
+
},
|
247
|
+
],
|
248
|
+
logConfiguration: {
|
249
|
+
logDriver: 'awslogs',
|
250
|
+
options: {
|
251
|
+
"awslogs-group": autoscalerLogGroup.name,
|
252
|
+
"awslogs-region": region.name,
|
253
|
+
"awslogs-stream-prefix": "ecs",
|
254
|
+
}
|
255
|
+
}
|
256
|
+
}
|
257
|
+
]),
|
258
|
+
cpu: '256',
|
259
|
+
memory: '512',
|
260
|
+
requiresCompatibilities: [
|
261
|
+
'FARGATE'
|
262
|
+
],
|
263
|
+
runtimePlatform: {
|
264
|
+
cpuArchitecture: 'X86_64',
|
265
|
+
operatingSystemFamily: 'LINUX'
|
266
|
+
},
|
267
|
+
networkMode: 'awsvpc',
|
268
|
+
});
|
269
|
+
const runnerPolicy = new iam_policy_1.IamPolicy(this, 'RunnerPolicy', {
|
270
|
+
policy: cdktf_1.Fn.jsonencode({
|
271
|
+
'Version': '2012-10-17',
|
272
|
+
'Statement': [
|
273
|
+
{
|
274
|
+
'Sid': 'StartandMonitorTask',
|
275
|
+
'Effect': 'Allow',
|
276
|
+
'Action': [
|
277
|
+
'ecs:RunTask',
|
278
|
+
'ecs:TagResource',
|
279
|
+
'ecs:ListTaskDefinitions',
|
280
|
+
'ecs:ListTasks',
|
281
|
+
'ecs:StopTask',
|
282
|
+
'ecs:RegisterTaskDefinition',
|
283
|
+
'ecs:DescribeTaskDefinition',
|
284
|
+
'ecs:DeregisterTaskDefinition',
|
285
|
+
'ecs:DeleteTaskDefinitions',
|
286
|
+
'ecs:ExecuteCommand',
|
287
|
+
// Needed for waiting
|
288
|
+
'ecs:DescribeTasks',
|
289
|
+
'logs:GetLogEvents',
|
290
|
+
'iam:PassRole',
|
291
|
+
'logs:StartLiveTail',
|
292
|
+
'logs:CreateLogStream',
|
293
|
+
],
|
294
|
+
'Resource': [
|
295
|
+
`arn:aws:ecs:${region.name}:${identity.accountId}:task-definition/gha-pod-workflow:*`,
|
296
|
+
cluster.arn,
|
297
|
+
// Triggerer has to be allowed to pass both task and task execution role
|
298
|
+
ecsTaskExecutionRole.arn,
|
299
|
+
runnerRole.arn,
|
300
|
+
`arn:aws:ecs:${region.name}:${identity.accountId}:task/${cluster.name}/*`,
|
301
|
+
//TODO: reorder rights so that listing is only one with star
|
302
|
+
'*'
|
303
|
+
]
|
304
|
+
},
|
305
|
+
{
|
306
|
+
'Sid': 'GetVpcInfo',
|
307
|
+
'Effect': 'Allow',
|
308
|
+
'Action': [
|
309
|
+
'ec2:DescribeSubnets',
|
310
|
+
'ec2:DescribeSecurityGroups'
|
311
|
+
],
|
312
|
+
'Resource': '*'
|
313
|
+
},
|
314
|
+
{
|
315
|
+
'Sid': 'ExecCommands',
|
316
|
+
'Effect': 'Allow',
|
317
|
+
'Action': [
|
318
|
+
'ssmmessages:CreateControlChannel',
|
319
|
+
'ssmmessages:CreateDataChannel',
|
320
|
+
'ssmmessages:OpenControlChannel',
|
321
|
+
'ssmmessages:OpenDataChannel'
|
322
|
+
],
|
323
|
+
'Resource': '*'
|
324
|
+
}
|
325
|
+
]
|
326
|
+
})
|
327
|
+
});
|
328
|
+
new iam_role_policy_attachment_1.IamRolePolicyAttachment(this, 'RunnerPolicyAttachment', {
|
329
|
+
policyArn: runnerPolicy.arn,
|
330
|
+
role: runnerRole.name
|
331
|
+
});
|
332
|
+
const autoscalerPolicy = new iam_policy_1.IamPolicy(this, 'AutoscalerPolicy', {
|
333
|
+
policy: cdktf_1.Fn.jsonencode({
|
334
|
+
'Version': '2012-10-17',
|
335
|
+
'Statement': [
|
336
|
+
{
|
337
|
+
'Sid': 'StartandMonitorTask',
|
338
|
+
'Effect': 'Allow',
|
339
|
+
'Action': [
|
340
|
+
'ecs:RunTask',
|
341
|
+
// Needed for waiting
|
342
|
+
'ecs:DescribeTasks',
|
343
|
+
'logs:GetLogEvents',
|
344
|
+
'iam:PassRole',
|
345
|
+
],
|
346
|
+
'Resource': [
|
347
|
+
`${runnerTaskDefinition.arnWithoutRevision}:*`,
|
348
|
+
// Triggerer has to be allowed to pass both task and task execution role
|
349
|
+
ecsTaskExecutionRole.arn,
|
350
|
+
runnerRole.arn,
|
351
|
+
`arn:aws:ecs:${region.name}:${identity.accountId}:task/${cluster.name}/*`,
|
352
|
+
`${runnerLogGroup.arn}:log-stream:*`,
|
353
|
+
]
|
354
|
+
},
|
355
|
+
{
|
356
|
+
'Sid': 'GetVpcInfo',
|
357
|
+
'Effect': 'Allow',
|
358
|
+
'Action': [
|
359
|
+
'ec2:DescribeSubnets',
|
360
|
+
'ec2:DescribeSecurityGroups'
|
361
|
+
],
|
362
|
+
'Resource': '*'
|
363
|
+
}
|
364
|
+
]
|
365
|
+
})
|
366
|
+
});
|
367
|
+
new iam_role_policy_attachment_1.IamRolePolicyAttachment(this, 'AutoscalerPolicyAttachment', {
|
368
|
+
policyArn: autoscalerPolicy.arn,
|
369
|
+
role: autoscalerRole.name
|
370
|
+
});
|
371
|
+
new ecs_service_1.EcsService(this, 'AutoscalerService', {
|
372
|
+
cluster: cluster.arn,
|
373
|
+
name: 'autoscaler-service',
|
374
|
+
desiredCount: 1,
|
375
|
+
launchType: 'FARGATE',
|
376
|
+
taskDefinition: autoscalerTaskDefinition.arnWithoutRevision,
|
377
|
+
networkConfiguration: {
|
378
|
+
assignPublicIp: true,
|
379
|
+
subnets: subnets.ids,
|
380
|
+
securityGroups: securityGroups.ids
|
381
|
+
},
|
382
|
+
lifecycle: {
|
383
|
+
ignoreChanges: [
|
384
|
+
'desired_count'
|
385
|
+
]
|
386
|
+
}
|
387
|
+
});
|
388
|
+
}
|
389
|
+
}
|
390
|
+
exports.Aws = Aws;
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9hd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUZBQWtGO0FBQ2xGLCtGQUF5RjtBQUN6Riw2RUFBd0U7QUFDeEUsK0ZBQXlGO0FBQ3pGLCtFQUEwRTtBQUMxRSxxRUFBaUU7QUFDakUscUVBQWlFO0FBQ2pFLHFGQUFnRjtBQUNoRixtRUFBK0Q7QUFDL0QsK0RBQTJEO0FBQzNELG1HQUE2RjtBQUM3RiwrREFBK0Q7QUFDL0QsaUNBQThDO0FBQzlDLDJDQUF1QztBQUN2QywyQ0FBOEM7QUFDOUMsNkVBQXdFO0FBRXhFLCtFQUEwRTtBQUUxRSxNQUFhLEdBQUksU0FBUSxzQkFBUztJQUM5QixZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUNwQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksc0JBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBRTVCLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksZ0RBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLCtCQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVwRCxNQUFNLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUEsMkJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUV2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM1QyxJQUFJLEVBQUUsb0JBQW9CO1NBQzdCLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQy9DLGdCQUFnQixFQUFFLFVBQUUsQ0FBQyxVQUFVLENBQUM7Z0JBQzVCLFNBQVMsRUFB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R0FBRyxjQUFjLENBQUMsR0FBRyxlQUFlO3lCQUN2QztxQkFDSjtvQkFDRDt3QkFDSSxLQUFLLEVBQUUsWUFBWTt3QkFDbkIsUUFBUSxFQUFFLE9BQU87d0JBQ2pCLFFBQVEsRUFBRTs0QkFDTixxQkFBcUI7NEJBQ3JCLDRCQUE0Qjt5QkFDL0I7d0JBQ0QsVUFBVSxFQUFFLEdBQUc7cUJBQ2xCO2lCQUNKO2FBQ0osQ0FFQTtTQUNKLENBQUMsQ0FBQTtRQUNGLElBQUksb0RBQXVCLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQzVELFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQy9CLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSTtTQUM1QixDQUFDLENBQUE7UUFFRixJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQ3RDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRztZQUNwQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFlBQVksRUFBRSxDQUFDO1lBQ2YsVUFBVSxFQUFFLFNBQVM7WUFDckIsY0FBYyxFQUFFLHdCQUF3QixDQUFDLGtCQUFrQjtZQUMzRCxvQkFBb0IsRUFBRTtnQkFDbEIsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRztnQkFDcEIsY0FBYyxFQUFFLGNBQWMsQ0FBQyxHQUFHO2FBQ3JDO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLGFBQWEsRUFBRTtvQkFDWCxlQUFlO2lCQUNsQjthQUNKO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBN1lELGtCQTZZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb3Vkd2F0Y2hMb2dHcm91cCB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwJztcbmltcG9ydCB7IERhdGFBd3NDYWxsZXJJZGVudGl0eSB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2RhdGEtYXdzLWNhbGxlci1pZGVudGl0eSc7XG5pbXBvcnQgeyBEYXRhQXdzUmVnaW9uIH0gZnJvbSAnQGNka3RmL3Byb3ZpZGVyLWF3cy9saWIvZGF0YS1hd3MtcmVnaW9uJztcbmltcG9ydCB7IERhdGFBd3NTZWN1cml0eUdyb3VwcyB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2RhdGEtYXdzLXNlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBEYXRhQXdzU3VibmV0cyB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2RhdGEtYXdzLXN1Ym5ldHMnO1xuaW1wb3J0IHsgRWNzQ2x1c3RlciB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2Vjcy1jbHVzdGVyJztcbmltcG9ydCB7IEVjc1NlcnZpY2UgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzL2xpYi9lY3Mtc2VydmljZSc7XG5pbXBvcnQgeyBFY3NUYXNrRGVmaW5pdGlvbiB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2Vjcy10YXNrLWRlZmluaXRpb24nO1xuaW1wb3J0IHsgSWFtUG9saWN5IH0gZnJvbSAnQGNka3RmL3Byb3ZpZGVyLWF3cy9saWIvaWFtLXBvbGljeSc7XG5pbXBvcnQgeyBJYW1Sb2xlIH0gZnJvbSAnQGNka3RmL3Byb3ZpZGVyLWF3cy9saWIvaWFtLXJvbGUnO1xuaW1wb3J0IHsgSWFtUm9sZVBvbGljeUF0dGFjaG1lbnQgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzL2xpYi9pYW0tcm9sZS1wb2xpY3ktYXR0YWNobWVudCc7XG5pbXBvcnQgeyBBd3NQcm92aWRlciB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL3Byb3ZpZGVyJztcbmltcG9ydCB7IEZuLCBUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gJ2Nka3RmJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgY29tbW9uVmFyaWFibGVzIH0gZnJvbSAnLi92YXJpYWJsZXMnO1xuaW1wb3J0IHsgRWZzRmlsZVN5c3RlbSB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1hd3MvbGliL2Vmcy1maWxlLXN5c3RlbSc7XG5pbXBvcnQgeyB0eXBlIENvbnRhaW5lckRlZmluaXRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWNzJ1xuaW1wb3J0IHsgRWZzTW91bnRUYXJnZXQgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzL2xpYi9lZnMtbW91bnQtdGFyZ2V0JztcblxuZXhwb3J0IGNsYXNzIEF3cyBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIG5ldyBBd3NQcm92aWRlcih0aGlzLCAnYXdzJywge1xuXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0gbmV3IERhdGFBd3NDYWxsZXJJZGVudGl0eSh0aGlzLCAnSWRlbnRpdHknLCB7fSk7XG5cbiAgICAgICAgY29uc3QgcmVnaW9uID0gbmV3IERhdGFBd3NSZWdpb24odGhpcywgJ1JlZ2lvbicsIHt9KVxuXG4gICAgICAgIGNvbnN0IHsgcGF0LCBnaXRodWJDb25maWdVcmwgfSA9IGNvbW1vblZhcmlhYmxlcyh0aGlzKTtcblxuICAgICAgICBjb25zdCBjbHVzdGVyID0gbmV3IEVjc0NsdXN0ZXIodGhpcywgJ0NsdXN0ZXInLCB7XG4gICAgICAgICAgICBuYW1lOiAnZ2hhLXJ1bm5lci1jbHVzdGVyJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcnVubmVyUm9sZSA9IG5ldyBJYW1Sb2xlKHRoaXMsICdSdW5uZXJSb2xlJywge1xuICAgICAgICAgICAgYXNzdW1lUm9sZVBvbGljeTogRm4uanNvbmVuY29kZSh7XG4gICAgICAgICAgICAgICAgJ1ZlcnNpb24nOiAnMjAxMi0xMC0xNycsXG4gICAgICAgICAgICAgICAgJ1N0YXRlbWVudCc6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0VmZmVjdCc6ICdBbGxvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnUHJpbmNpcGFsJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXJ2aWNlJzogJ2Vjcy10YXNrcy5hbWF6b25hd3MuY29tJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdBY3Rpb24nOiAnc3RzOkFzc3VtZVJvbGUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IGF1dG9zY2FsZXJSb2xlID0gbmV3IElhbVJvbGUodGhpcywgJ0F1dG9zY2FsZXJSb2xlJywge1xuICAgICAgICAgICAgYXNzdW1lUm9sZVBvbGljeTogRm4uanNvbmVuY29kZSh7XG4gICAgICAgICAgICAgICAgJ1ZlcnNpb24nOiAnMjAxMi0xMC0xNycsXG4gICAgICAgICAgICAgICAgJ1N0YXRlbWVudCc6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0VmZmVjdCc6ICdBbGxvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnUHJpbmNpcGFsJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXJ2aWNlJzogJ2Vjcy10YXNrcy5hbWF6b25hd3MuY29tJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdBY3Rpb24nOiAnc3RzOkFzc3VtZVJvbGUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IGVjc1Rhc2tFeGVjdXRpb25Sb2xlID0gbmV3IElhbVJvbGUodGhpcywgJ1Rhc2tFeGVjdXRpb25Sb2xlJywge1xuICAgICAgICAgICAgYXNzdW1lUm9sZVBvbGljeTogRm4uanNvbmVuY29kZSh7XG4gICAgICAgICAgICAgICAgJ1ZlcnNpb24nOiAnMjAxMi0xMC0xNycsXG4gICAgICAgICAgICAgICAgJ1N0YXRlbWVudCc6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0VmZmVjdCc6ICdBbGxvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnUHJpbmNpcGFsJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXJ2aWNlJzogJ2Vjcy10YXNrcy5hbWF6b25hd3MuY29tJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdBY3Rpb24nOiAnc3RzOkFzc3VtZVJvbGUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hbmFnZWRQb2xpY3lBcm5zOiBbXG4gICAgICAgICAgICAgICAgJ2Fybjphd3M6aWFtOjphd3M6cG9saWN5L3NlcnZpY2Utcm9sZS9BbWF6b25FQ1NUYXNrRXhlY3V0aW9uUm9sZVBvbGljeSdcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBydW5uZXJMb2dHcm91cCA9IG5ldyBDbG91ZHdhdGNoTG9nR3JvdXAodGhpcywgJ1J1bm5lckxvZ0dyb3VwJywge1xuICAgICAgICAgICAgbmFtZTogJy9lY3MvR0hBJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYXV0b3NjYWxlckxvZ0dyb3VwID0gbmV3IENsb3Vkd2F0Y2hMb2dHcm91cCh0aGlzLCAnQXV0b3NjYWxlckxvZ0dyb3VwJywge1xuICAgICAgICAgICAgbmFtZTogJy9lY3MvQXV0b3NjYWxlcicsXG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgY29uc3Qgc3VibmV0cyA9IG5ldyBEYXRhQXdzU3VibmV0cyh0aGlzLCAnU3VibmV0cycsIHt9KTtcblxuICAgICAgICBjb25zdCBzZWN1cml0eUdyb3VwcyA9IG5ldyBEYXRhQXdzU2VjdXJpdHlHcm91cHModGhpcywgJ1NlY3VyaXR5R3JvdXBzJyk7XG5cbiAgICAgICAgLy8gRUZTIHZvbHVtZSB0byBhbGxvdyBzaGFyaW5nIGRhdGEgYmV0d2VlbiB0YXNrc1xuICAgICAgICBjb25zdCBlZnMgPSBuZXcgRWZzRmlsZVN5c3RlbSh0aGlzLCAnZWZzJywge1xuICAgICAgICAgICAgdGhyb3VnaHB1dE1vZGU6ICdlbGFzdGljJyxcbiAgICAgICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICAgICAgICBOYW1lOiAnd29yaydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBleHRlcm5hbHNFZnMgPSBuZXcgRWZzRmlsZVN5c3RlbSh0aGlzLCAnZXh0ZXJuYWxzRWZzJywge1xuICAgICAgICAgICAgdGhyb3VnaHB1dE1vZGU6ICdlbGFzdGljJyxcbiAgICAgICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICAgICAgICBOYW1lOiAnZXh0ZXJuYWxzJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEVhY2ggc3VibmV0IGluIFZQQyBhcmUgb24gZGlmZmVyZW50IEFacywgc28gY3JlYXRpbmcgbW91bnRwb2ludCB0byBlYWNoXG4gICAgICAgIGNvbnN0IGl0ZXJhdG9yID0gVGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3Qoc3VibmV0cy5pZHMpXG5cbiAgICAgICAgbmV3IEVmc01vdW50VGFyZ2V0KHRoaXMsICdFZnNNb3VudFRhcmdldCcsIHtcbiAgICAgICAgICAgIGZvckVhY2g6IGl0ZXJhdG9yLFxuICAgICAgICAgICAgZmlsZVN5c3RlbUlkOiBlZnMuaWQsXG4gICAgICAgICAgICBzdWJuZXRJZDogaXRlcmF0b3IudmFsdWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IEVmc01vdW50VGFyZ2V0KHRoaXMsICdFeHRlcm5hbHNFZnNNb3VudFRhcmdldCcsIHtcbiAgICAgICAgICAgIGZvckVhY2g6IGl0ZXJhdG9yLFxuICAgICAgICAgICAgZmlsZVN5c3RlbUlkOiBleHRlcm5hbHNFZnMuaWQsXG4gICAgICAgICAgICBzdWJuZXRJZDogaXRlcmF0b3IudmFsdWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcnVubmVyVm9sdW1lTmFtZSA9ICd3b3JrJztcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxzVm9sdW1lTmFtZSA9ICdleHRlcm5hbHMnO1xuICAgICAgICBjb25zdCBydW5uZXJDb250YWluZXJEZWZpbml0aW9uczogQ29udGFpbmVyRGVmaW5pdGlvbltdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3J1bm5lcicsXG4gICAgICAgICAgICBpbWFnZTogJ2doY3IuaW8vaGktZmkvYWN0aW9ucy1ydW5uZXI6ZWNzJyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IFsnL2Jpbi9zaCcsICctYycsICdleHBvcnQgRVhFQ0lEPSQoY2F0IC9wcm9jL3N5cy9rZXJuZWwvcmFuZG9tL3V1aWQpICYmIHN1ZG8gbWtkaXIgLXAgL3RtcC9fd29yay8kRVhFQ0lEICYmIHN1ZG8gY2hvd24gcnVubmVyOnJ1bm5lciAvdG1wL193b3JrLyRFWEVDSUQgJiYgbG4gLXMgL3RtcC9fd29yay8kRVhFQ0lEIF93b3JrICYmIHN1ZG8gY2hvd24gcnVubmVyOnJ1bm5lciAvdG1wL2V4dGVybmFscyAmJiAvaG9tZS9ydW5uZXIvcnVuLnNoIDsgc3VkbyBybSAtciAvdG1wL193b3JrLyRFWEVDSUQnXSxcbiAgICAgICAgICAgIGVzc2VudGlhbDogdHJ1ZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRUZTX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVmcy5pZFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRVhURVJOQUxTX0VGU19JRCcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBleHRlcm5hbHNFZnMuaWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0VDU19DTFVTVEVSX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2x1c3Rlci5uYW1lXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBQ1RJT05TX1JVTk5FUl9QT0RfTkFNRScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnZ2hhLXBvZCdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0FDVElPTlNfUlVOTkVSX1JFUVVJUkVfSk9CX0NPTlRBSU5FUicsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnZmFsc2UnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFQ1NfU1VCTkVUUycsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBGbi5qb2luKCcsJywgc3VibmV0cy5pZHMpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFQ1NfU0VDVVJJVFlfR1JPVVBTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEZuLmpvaW4oJywnLCBzZWN1cml0eUdyb3Vwcy5pZHMpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFQ1NfVEFTS19ST0xFJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJ1bm5lclJvbGUuYXJuXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFQ1NfRVhFQ1VUSU9OX1JPTEUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWNzVGFza0V4ZWN1dGlvblJvbGUuYXJuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG1vdW50UG9pbnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2VWb2x1bWU6IHJ1bm5lclZvbHVtZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclBhdGg6ICcvdG1wL193b3JrJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlVm9sdW1lOiBleHRlcm5hbHNWb2x1bWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJQYXRoOiAnL3RtcC9leHRlcm5hbHMnLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgbG9nRHJpdmVyOiAnYXdzbG9ncycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBcImF3c2xvZ3MtZ3JvdXBcIjogcnVubmVyTG9nR3JvdXAubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgXCJhd3Nsb2dzLXJlZ2lvblwiOiByZWdpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgXCJhd3Nsb2dzLXN0cmVhbS1wcmVmaXhcIjogXCJlY3NcIixcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1dXG4gICAgICAgIC8vIFRPRE86IEltYWdlcyB0aHJvdWdoIGNhY2hpbmc6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1IvbGF0ZXN0L3VzZXJndWlkZS9wdWxsLXRocm91Z2gtY2FjaGUuaHRtbCAocmVxdWlyZXMgYXV0aGVudGljYXRpb24pXG4gICAgICAgIC8vIFRPRE86IFBhc3MgRXhlY3V0aW9uIHJvbGUgdG8gam9iIHRhc2s6IGh0dHBzOi8vd3d3LmVybmVzdGNoaWFuZy5jb20vZW4vcG9zdHMvMjAyMS91c2luZy1hbWF6b24tZWNzLWV4ZWMvIzEtZ3JhbnQtcGVybWlzc2lvbnMtZWNzLXRhc2staWFtLXJvbGVcbiAgICAgICAgLy8gVE9ETzogUGFzcyBUYXNrIHJvbGUgdG8gam9iIHRhc2tcbiAgICAgICAgY29uc3QgcnVubmVyVGFza0RlZmluaXRpb24gPSBuZXcgRWNzVGFza0RlZmluaXRpb24odGhpcywgJ1J1bm5lclRhc2tEZWZpbml0aW9uJywge1xuICAgICAgICAgICAgZmFtaWx5OiAnR0hBJyxcbiAgICAgICAgICAgIHRhc2tSb2xlQXJuOiBydW5uZXJSb2xlLmFybixcbiAgICAgICAgICAgIGV4ZWN1dGlvblJvbGVBcm46IGVjc1Rhc2tFeGVjdXRpb25Sb2xlLmFybixcbiAgICAgICAgICAgIGNvbnRhaW5lckRlZmluaXRpb25zOiBGbi5qc29uZW5jb2RlKHJ1bm5lckNvbnRhaW5lckRlZmluaXRpb25zKSxcbiAgICAgICAgICAgIGNwdTogJzEwMjQnLFxuICAgICAgICAgICAgbWVtb3J5OiAnMjA0OCcsXG4gICAgICAgICAgICByZXF1aXJlc0NvbXBhdGliaWxpdGllczogW1xuICAgICAgICAgICAgICAgICdGQVJHQVRFJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZTogJ1g4Nl82NCcsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW5nU3lzdGVtRmFtaWx5OiAnTElOVVgnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV0d29ya01vZGU6ICdhd3N2cGMnLFxuICAgICAgICAgICAgdm9sdW1lOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBydW5uZXJWb2x1bWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICBlZnNWb2x1bWVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlU3lzdGVtSWQ6IGVmcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgZG9lc24ndCB3b3JrIHdpdGggc2FtZSB2b2x1bWUsIGFzIHZvbHVtZSBpcyBpbml0aWFsbHkgZW1wdHkgc28gaXQgY2FuJ3QgbWFwIHRvIGl0J3MgXCJleHRlcm5hbHNcIiBkaXJlY3RvcnlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGV4dGVybmFsc1ZvbHVtZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGVmc1ZvbHVtZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVTeXN0ZW1JZDogZXh0ZXJuYWxzRWZzLmlkLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IGF1dG9zY2FsZXJUYXNrRGVmaW5pdGlvbiA9IG5ldyBFY3NUYXNrRGVmaW5pdGlvbih0aGlzLCAnQXV0b3NjYWxlclRhc2tEZWZpbml0aW9uJywge1xuICAgICAgICAgICAgZmFtaWx5OiAnQXV0b3NjYWxlcicsXG4gICAgICAgICAgICB0YXNrUm9sZUFybjogYXV0b3NjYWxlclJvbGUuYXJuLFxuICAgICAgICAgICAgZXhlY3V0aW9uUm9sZUFybjogZWNzVGFza0V4ZWN1dGlvblJvbGUuYXJuLFxuICAgICAgICAgICAgY29udGFpbmVyRGVmaW5pdGlvbnM6IEZuLmpzb25lbmNvZGUoW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2F1dG9zY2FsZXInLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZTogJ2doY3IuaW8vaGktZmkvZ2hhLXJ1bm5lcnMtb24tbWFuYWdlZC1lbnY6dGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIGVzc2VudGlhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnUEFUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGF0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdHSVRIVUJfQ09ORklHX1VSTCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdpdGh1YkNvbmZpZ1VybC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnVEFTS19ERUZJTklUSU9OX0FSTicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJ1bm5lclRhc2tEZWZpbml0aW9uLmFyblxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRUNTX0NMVVNURVInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjbHVzdGVyLmFyblxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRUNTX1NVQk5FVFMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBGbi5qb2luKCcsJywgc3VibmV0cy5pZHMpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFQ1NfU0VDVVJJVFlfR1JPVVBTJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRm4uam9pbignLCcsIHNlY3VyaXR5R3JvdXBzLmlkcylcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1NDQUxFX1NFVF9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2Vjcy1ydW5uZXItc2V0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgbG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nRHJpdmVyOiAnYXdzbG9ncycsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nsb2dzLWdyb3VwXCI6IGF1dG9zY2FsZXJMb2dHcm91cC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXdzbG9ncy1yZWdpb25cIjogcmVnaW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nsb2dzLXN0cmVhbS1wcmVmaXhcIjogXCJlY3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgY3B1OiAnMjU2JyxcbiAgICAgICAgICAgIG1lbW9yeTogJzUxMicsXG4gICAgICAgICAgICByZXF1aXJlc0NvbXBhdGliaWxpdGllczogW1xuICAgICAgICAgICAgICAgICdGQVJHQVRFJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZTogJ1g4Nl82NCcsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW5nU3lzdGVtRmFtaWx5OiAnTElOVVgnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV0d29ya01vZGU6ICdhd3N2cGMnLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHJ1bm5lclBvbGljeSA9IG5ldyBJYW1Qb2xpY3kodGhpcywgJ1J1bm5lclBvbGljeScsIHtcbiAgICAgICAgICAgIHBvbGljeTogRm4uanNvbmVuY29kZSh7XG4gICAgICAgICAgICAgICAgJ1ZlcnNpb24nOiAnMjAxMi0xMC0xNycsXG4gICAgICAgICAgICAgICAgJ1N0YXRlbWVudCc6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpZCc6ICdTdGFydGFuZE1vbml0b3JUYXNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdFZmZlY3QnOiAnQWxsb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbic6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWNzOlJ1blRhc2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6VGFnUmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6TGlzdFRhc2tEZWZpbml0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VjczpMaXN0VGFza3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6U3RvcFRhc2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6UmVnaXN0ZXJUYXNrRGVmaW5pdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VjczpEZXNjcmliZVRhc2tEZWZpbml0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWNzOkRlcmVnaXN0ZXJUYXNrRGVmaW5pdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VjczpEZWxldGVUYXNrRGVmaW5pdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6RXhlY3V0ZUNvbW1hbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWRlZCBmb3Igd2FpdGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6RGVzY3JpYmVUYXNrcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvZ3M6R2V0TG9nRXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWFtOlBhc3NSb2xlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nczpTdGFydExpdmVUYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZXNvdXJjZSc6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYXJuOmF3czplY3M6JHtyZWdpb24ubmFtZX06JHtpZGVudGl0eS5hY2NvdW50SWR9OnRhc2stZGVmaW5pdGlvbi9naGEtcG9kLXdvcmtmbG93OipgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXIuYXJuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXJlciBoYXMgdG8gYmUgYWxsb3dlZCB0byBwYXNzIGJvdGggdGFzayBhbmQgdGFzayBleGVjdXRpb24gcm9sZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjc1Rhc2tFeGVjdXRpb25Sb2xlLmFybixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uZXJSb2xlLmFybixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYXJuOmF3czplY3M6JHtyZWdpb24ubmFtZX06JHtpZGVudGl0eS5hY2NvdW50SWR9OnRhc2svJHtjbHVzdGVyLm5hbWV9LypgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVE9ETzogcmVvcmRlciByaWdodHMgc28gdGhhdCBsaXN0aW5nIGlzIG9ubHkgb25lIHdpdGggc3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnU2lkJzogJ0dldFZwY0luZm8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0VmZmVjdCc6ICdBbGxvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnQWN0aW9uJzogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlYzI6RGVzY3JpYmVTdWJuZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWMyOkRlc2NyaWJlU2VjdXJpdHlHcm91cHMnXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1Jlc291cmNlJzogJyonXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTaWQnOiAnRXhlY0NvbW1hbmRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdFZmZlY3QnOiAnQWxsb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbic6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3NtbWVzc2FnZXM6Q3JlYXRlQ29udHJvbENoYW5uZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzc21tZXNzYWdlczpDcmVhdGVEYXRhQ2hhbm5lbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NzbW1lc3NhZ2VzOk9wZW5Db250cm9sQ2hhbm5lbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NzbW1lc3NhZ2VzOk9wZW5EYXRhQ2hhbm5lbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVzb3VyY2UnOiAnKidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBJYW1Sb2xlUG9saWN5QXR0YWNobWVudCh0aGlzLCAnUnVubmVyUG9saWN5QXR0YWNobWVudCcsIHtcbiAgICAgICAgICAgIHBvbGljeUFybjogcnVubmVyUG9saWN5LmFybixcbiAgICAgICAgICAgIHJvbGU6IHJ1bm5lclJvbGUubmFtZVxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IGF1dG9zY2FsZXJQb2xpY3kgPSBuZXcgSWFtUG9saWN5KHRoaXMsICdBdXRvc2NhbGVyUG9saWN5Jywge1xuICAgICAgICAgICAgcG9saWN5OiBGbi5qc29uZW5jb2RlKHtcbiAgICAgICAgICAgICAgICAnVmVyc2lvbic6ICcyMDEyLTEwLTE3JyxcbiAgICAgICAgICAgICAgICAnU3RhdGVtZW50JzogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnU2lkJzogJ1N0YXJ0YW5kTW9uaXRvclRhc2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0VmZmVjdCc6ICdBbGxvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnQWN0aW9uJzogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlY3M6UnVuVGFzaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmVlZGVkIGZvciB3YWl0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VjczpEZXNjcmliZVRhc2tzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nczpHZXRMb2dFdmVudHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpYW06UGFzc1JvbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZXNvdXJjZSc6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtydW5uZXJUYXNrRGVmaW5pdGlvbi5hcm5XaXRob3V0UmV2aXNpb259OipgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXJlciBoYXMgdG8gYmUgYWxsb3dlZCB0byBwYXNzIGJvdGggdGFzayBhbmQgdGFzayBleGVjdXRpb24gcm9sZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjc1Rhc2tFeGVjdXRpb25Sb2xlLmFybixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uZXJSb2xlLmFybixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYXJuOmF3czplY3M6JHtyZWdpb24ubmFtZX06JHtpZGVudGl0eS5hY2NvdW50SWR9OnRhc2svJHtjbHVzdGVyLm5hbWV9LypgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3J1bm5lckxvZ0dyb3VwLmFybn06bG9nLXN0cmVhbToqYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpZCc6ICdHZXRWcGNJbmZvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdFZmZlY3QnOiAnQWxsb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbic6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWMyOkRlc2NyaWJlU3VibmV0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VjMjpEZXNjcmliZVNlY3VyaXR5R3JvdXBzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZXNvdXJjZSc6ICcqJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIG5ldyBJYW1Sb2xlUG9saWN5QXR0YWNobWVudCh0aGlzLCAnQXV0b3NjYWxlclBvbGljeUF0dGFjaG1lbnQnLCB7XG4gICAgICAgICAgICBwb2xpY3lBcm46IGF1dG9zY2FsZXJQb2xpY3kuYXJuLFxuICAgICAgICAgICAgcm9sZTogYXV0b3NjYWxlclJvbGUubmFtZVxuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBFY3NTZXJ2aWNlKHRoaXMsICdBdXRvc2NhbGVyU2VydmljZScsIHtcbiAgICAgICAgICAgIGNsdXN0ZXI6IGNsdXN0ZXIuYXJuLFxuICAgICAgICAgICAgbmFtZTogJ2F1dG9zY2FsZXItc2VydmljZScsXG4gICAgICAgICAgICBkZXNpcmVkQ291bnQ6IDEsXG4gICAgICAgICAgICBsYXVuY2hUeXBlOiAnRkFSR0FURScsXG4gICAgICAgICAgICB0YXNrRGVmaW5pdGlvbjogYXV0b3NjYWxlclRhc2tEZWZpbml0aW9uLmFybldpdGhvdXRSZXZpc2lvbixcbiAgICAgICAgICAgIG5ldHdvcmtDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgYXNzaWduUHVibGljSXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VibmV0czogc3VibmV0cy5pZHMsXG4gICAgICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHNlY3VyaXR5R3JvdXBzLmlkc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICAgICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgJ2Rlc2lyZWRfY291bnQnXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ==
|
package/lib/lib/azure.js
CHANGED
@@ -474,5 +474,5 @@ class Azure extends constructs_1.Construct {
|
|
474
474
|
}
|
475
475
|
exports.Azure = Azure;
|
476
476
|
_a = JSII_RTTI_SYMBOL_1;
|
477
|
-
Azure[_a] = { fqn: "terraform-cdk-serverless-github-actions-runner-controller.Azure", version: "0.0.
|
477
|
+
Azure[_a] = { fqn: "terraform-cdk-serverless-github-actions-runner-controller.Azure", version: "0.0.1" };
|
478
478
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2F6dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQXVFO0FBQ3ZFLCtEQUFnRTtBQUNoRSwrREFBMkQ7QUFDM0QsbUdBQTRGO0FBQzVGLGlDQUE4QztBQUM5QywyQ0FBdUM7QUFDdkMsK0VBQTJFO0FBQzNFLHVGQUFtRjtBQUNuRiwrRkFBMEY7QUFDMUYsaUZBQTZFO0FBQzdFLGlHQUE0RjtBQUM1RixpRkFBNkU7QUFDN0UscUdBQWdHO0FBQ2hHLDZFQUF5RTtBQUN6RSwyQ0FBOEM7QUFDOUMscUhBQStHO0FBQy9HLGtFQUFxRTtBQUNyRSxnRkFBNEU7QUFFNUUsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFDaEMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLDBCQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNqQyxRQUFRLEVBQUU7Z0JBQ04sRUFBRTthQUNMO1NBQ0osQ0FBQyxDQUFBO1FBRUYsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDaEMsQ0FBQyxDQUFBO1FBRUYsSUFBSSx5QkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUVsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLG1EQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFekQsTUFBTSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFBLDJCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3JELE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFdBQVcsRUFBRSwwQ0FBMEM7WUFDdkQsSUFBSSxFQUFFLFFBQVE7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YixrQkFBa0IsRUFBRSxTQUFTO1NBQ2hDLENBQUMsQ0FBQztRQUVILElBQUksZ0NBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDN0MsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ2pDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNiLGtCQUFrQixFQUFFLHNCQUFzQjtTQUM3QyxDQUFDLENBQUE7SUFDTixDQUFDOztBQXBlTCxzQkFxZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSAnLi4vLmdlbi9wcm92aWRlcnMvYXphcGkvcHJvdmlkZXInXG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4uLy5nZW4vcHJvdmlkZXJzL2F6YXBpL3Jlc291cmNlJ1xuaW1wb3J0IHsgRGF0YUF6YXBpUmVzb3VyY2VBY3Rpb24gfSBmcm9tICcuLi8uZ2VuL3Byb3ZpZGVycy9hemFwaS9kYXRhLWF6YXBpLXJlc291cmNlLWFjdGlvbidcbmltcG9ydCB7IEZuLCBUZXJyYWZvcm1WYXJpYWJsZSB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBDb250YWluZXJSZWdpc3RyeSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvY29udGFpbmVyLXJlZ2lzdHJ5XCI7XG5pbXBvcnQgeyBVc2VyQXNzaWduZWRJZGVudGl0eSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvdXNlci1hc3NpZ25lZC1pZGVudGl0eVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3JvbGUtYXNzaWdubWVudFwiO1xuaW1wb3J0IHsgTG9nQW5hbHl0aWNzV29ya3NwYWNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZVwiO1xuaW1wb3J0IHsgUm9sZURlZmluaXRpb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3JvbGUtZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgRGF0YUF6dXJlcm1TdWJzY3JpcHRpb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1zdWJzY3JpcHRpb25cIjtcbmltcG9ydCB7IENvbnRhaW5lckFwcCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvY29udGFpbmVyLWFwcFwiO1xuaW1wb3J0IHsgY29tbW9uVmFyaWFibGVzIH0gZnJvbSBcIi4vdmFyaWFibGVzXCI7XG5pbXBvcnQgeyBDb250YWluZXJBcHBFbnZpcm9ubWVudFN0b3JhZ2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2NvbnRhaW5lci1hcHAtZW52aXJvbm1lbnQtc3RvcmFnZVwiO1xuaW1wb3J0IHsgUmFuZG9tUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLXJhbmRvbS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFN0cmluZ1Jlc291cmNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1yYW5kb20vbGliL3N0cmluZy1yZXNvdXJjZVwiO1xuXG5leHBvcnQgY2xhc3MgQXp1cmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgICAgXG4gICAgICAgIG5ldyBBenVyZXJtUHJvdmlkZXIodGhpcywgJ2F6dXJlcm0nLCB7XG4gICAgICAgICAgICBmZWF0dXJlczogW1xuICAgICAgICAgICAgICAgIHt9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0pXG5cbiAgICAgICAgbmV3IEF6YXBpUHJvdmlkZXIodGhpcywgJ2F6YXBpJywge1xuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBSYW5kb21Qcm92aWRlcih0aGlzLCAncmFuZG9tJylcblxuICAgICAgICBjb25zdCBzdWIgPSBuZXcgRGF0YUF6dXJlcm1TdWJzY3JpcHRpb24odGhpcywgJ3N1YicsIHt9KTtcblxuICAgICAgICBjb25zdCB7IHBhdCwgZ2l0aHViQ29uZmlnVXJsIH0gPSBjb21tb25WYXJpYWJsZXModGhpcyk7XG5cbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSBuZXcgVGVycmFmb3JtVmFyaWFibGUodGhpcywgJ2xvY2F0aW9uJywge1xuICAgICAgICAgICAgZGVmYXVsdDogJ3dlc3RldXJvcGUnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdMb2NhdGlvbiB3aGVyZSB0byBwcm92aXNpb24gcmVzb3VyY2VzIHRvJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG51bGxhYmxlOiBmYWxzZVxuICAgICAgICB9KS52YWx1ZTtcblxuICAgICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsICdyZycsIHtcbiAgICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogJ2doYS1ydW5uZXItcmcnLFxuICAgICAgICAgICAgbGlmZWN5Y2xlOiB7XG4gICAgICAgICAgICAgICAgaWdub3JlQ2hhbmdlczogW1xuICAgICAgICAgICAgICAgICAgICAndGFncydcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJhbmRvbSA9IG5ldyBTdHJpbmdSZXNvdXJjZSh0aGlzLCAncmFuZG9tU3VmZml4Jywge1xuICAgICAgICAgICAgbGVuZ3RoOiA2LFxuICAgICAgICAgICAgc3BlY2lhbDogZmFsc2UsXG4gICAgICAgICAgICB1cHBlcjogZmFsc2UsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgYWNyID0gbmV3IENvbnRhaW5lclJlZ2lzdHJ5KHRoaXMsICdhY3InLCB7XG4gICAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICAgIG5hbWU6IGBydW5uZXJhY3Ike3JhbmRvbS5yZXN1bHR9YCxcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZy5uYW1lLFxuICAgICAgICAgICAgc2t1OiAnQmFzaWMnLFxuICAgICAgICAgICAgbGlmZWN5Y2xlOiB7XG4gICAgICAgICAgICAgICAgaWdub3JlQ2hhbmdlczogW1xuICAgICAgICAgICAgICAgICAgICAndGFncydcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHVzZSBjYWNoaW5nIGZvciBpbWFnZXNcbiAgICAgICAgY29uc3QgcnVubmVyQ2FjaGUgPSBuZXcgUmVzb3VyY2UodGhpcywgJ3J1bm5lckNhY2hlJywge1xuICAgICAgICAgICAgdHlwZTogJ01pY3Jvc29mdC5Db250YWluZXJSZWdpc3RyeS9yZWdpc3RyaWVzL2NhY2hlUnVsZXNAMjAyMy0wMS0wMS1wcmV2aWV3JyxcbiAgICAgICAgICAgIHBhcmVudElkOiBhY3IuaWQsXG4gICAgICAgICAgICBuYW1lOiAncm9vdC1ydW5uZXItY2FjaGUnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlUmVwb3NpdG9yeTogJ2doY3IuaW8vaGktZmkvcm9vdC1hY3Rpb25zLXJ1bm5lcicsXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFJlcG9zaXRvcnk6ICdyb290LWFjdGlvbnMtcnVubmVyJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBhdXRvc2NhbGVyQ2FjaGUgPSBuZXcgUmVzb3VyY2UodGhpcywgJ2F1dG9zY2FsZXJDYWNoZScsIHtcbiAgICAgICAgICAgIHR5cGU6ICdNaWNyb3NvZnQuQ29udGFpbmVyUmVnaXN0cnkvcmVnaXN0cmllcy9jYWNoZVJ1bGVzQDIwMjMtMDEtMDEtcHJldmlldycsXG4gICAgICAgICAgICBwYXJlbnRJZDogYWNyLmlkLFxuICAgICAgICAgICAgbmFtZTogJ2F1dG9zY2FsZXItY2FjaGUnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlUmVwb3NpdG9yeTogJ2doY3IuaW8vaGktZmkvZ2hhLXJ1bm5lcnMtb24tbWFuYWdlZC1lbnYnLFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZXBvc2l0b3J5OiAnYXV0b3NjYWxlcidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkodGhpcywgJ2lkZW50aXR5Jywge1xuICAgICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgICBuYW1lOiAnYWNhLWFjci1hY2Nlc3MnLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJnLm5hbWUsXG4gICAgICAgICAgICBsaWZlY3ljbGU6IHtcbiAgICAgICAgICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXG4gICAgICAgICAgICAgICAgICAgICd0YWdzJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFJvbGVBc3NpZ25tZW50KHRoaXMsICdyb2xlQXNzaWdubWVudCcsIHtcbiAgICAgICAgICAgIHByaW5jaXBhbElkOiBpZGVudGl0eS5wcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHNjb3BlOiBhY3IuaWQsXG4gICAgICAgICAgICByb2xlRGVmaW5pdGlvbk5hbWU6ICdBY3JQdWxsJ1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsb2cgPSBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKHRoaXMsICdsb2cnLCB7XG4gICAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdnaGEtZXhhbXBsZS1sb2dzJyxcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZy5uYW1lLFxuICAgICAgICAgICAgbGlmZWN5Y2xlOiB7XG4gICAgICAgICAgICAgICAgaWdub3JlQ2hhbmdlczogW1xuICAgICAgICAgICAgICAgICAgICAndGFncydcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgUmVzb3VyY2UodGhpcywgJ3N0b3JhZ2VBY2NvdW50Jywge1xuICAgICAgICAgICAgdHlwZTogJ01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c0AyMDIzLTAxLTAxJyxcbiAgICAgICAgICAgIHBhcmVudElkOiByZy5pZCxcbiAgICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogYGdoYXN0b3JhZ2VhY2NvdW50JHtyYW5kb20ucmVzdWx0fWAsXG4gICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBsYXJnZUZpbGVTaGFyZXNTdGF0ZTogJ0VuYWJsZWQnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBza3U6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1N0YW5kYXJkX0xSUydcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGtpbmQ6ICdTdG9yYWdlVjInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICAgICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgJ3RhZ3MnXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc3BvbnNlRXhwb3J0VmFsdWVzOiBbXG5cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZVNoYXJlID0gbmV3IFJlc291cmNlKHRoaXMsICdzdG9yYWdlU2hhcmUnLCB7XG4gICAgICAgICAgICB0eXBlOiAnTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL2ZpbGVTZXJ2aWNlcy9zaGFyZXNAMjAyMy0wMS0wMScsXG4gICAgICAgICAgICBuYW1lOiAnZ2hhZXhhbXBsZXNoYXJlJyxcbiAgICAgICAgICAgIHBhcmVudElkOiBgJHtzdG9yYWdlQWNjb3VudC5pZH0vZmlsZVNlcnZpY2VzL2RlZmF1bHRgLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZFByb3RvY29sczogJ1NNQicsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZXh0ZXJuYWxzU2hhcmUgPSBuZXcgUmVzb3VyY2UodGhpcywgJ2V4dGVybmFsc1NoYXJlJywge1xuICAgICAgICAgICAgdHlwZTogJ01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9maWxlU2VydmljZXMvc2hhcmVzQDIwMjMtMDEtMDEnLFxuICAgICAgICAgICAgbmFtZTogJ2doYWV4dGVybmFsc3NoYXJlJyxcbiAgICAgICAgICAgIHBhcmVudElkOiBgJHtzdG9yYWdlQWNjb3VudC5pZH0vZmlsZVNlcnZpY2VzL2RlZmF1bHRgLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZFByb3RvY29sczogJ1NNQicsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZW52aXJvbm1lbnQgPSBuZXcgUmVzb3VyY2UodGhpcywgJ2FjYWVudicsIHtcbiAgICAgICAgICAgIHR5cGU6ICdNaWNyb3NvZnQuQXBwL21hbmFnZWRFbnZpcm9ubWVudHNAMjAyNC0wMy0wMScsXG4gICAgICAgICAgICBwYXJlbnRJZDogcmcuaWQsXG4gICAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdnaGEtcnVubmVyLWVudmlyb25tZW50JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcExvZ3NDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogJ2xvZy1hbmFseXRpY3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nQW5hbHl0aWNzQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IGxvZy53b3Jrc3BhY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRLZXk6IGxvZy5wcmltYXJ5U2hhcmVkS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbmZyYXN0cnVjdHVyZVJlc291cmNlR3JvdXA6ICdtYW5hZ2VkLWFjYS1yZycsXG4gICAgICAgICAgICAgICAgICAgIHdvcmtsb2FkUHJvZmlsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ29uc3VtcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtsb2FkUHJvZmlsZVR5cGU6ICdDb25zdW1wdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaWZlY3ljbGU6IHtcbiAgICAgICAgICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXG4gICAgICAgICAgICAgICAgICAgICd0YWdzJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZUFjY2Vzc0tleSA9IG5ldyBEYXRhQXphcGlSZXNvdXJjZUFjdGlvbih0aGlzLCAnc3RvcmFnZUFjY2Vzc0tleXMnLCB7XG4gICAgICAgICAgICB0eXBlOiAnTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzQDIwMjMtMDEtMDEnLFxuICAgICAgICAgICAgYWN0aW9uOiAnbGlzdEtleXMnLFxuICAgICAgICAgICAgcmVzb3VyY2VJZDogc3RvcmFnZUFjY291bnQuaWQsXG4gICAgICAgICAgICByZXNwb25zZUV4cG9ydFZhbHVlczogWycqJ10sXG4gICAgICAgICAgICBkZXBlbmRzT246IFtcbiAgICAgICAgICAgICAgICBzdG9yYWdlQWNjb3VudFxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xNjQxXG4gICAgICAgIC8vIEZvciBvbGRlciBBemFwaSB3YXkgdG8gZ2V0IGtleSB3b3VsZCBiZSB0aGlzIHdoZW4gKGRlZmF1bHQpIGRhdGEgb3V0cHV0IHdhcyBqc29uLiBXaXRuIDIuMC4wLWJldGEgZGVmYXVsdCB3YXMgY2hhbmdlZCB0byBIQ0xcbiAgICAgICAgLy8gY29uc3QgYWNjZXNzS2V5ID0gRm4ubG9va3VwKEZuLmVsZW1lbnQoRm4ubG9va3VwKEZuLmpzb25kZWNvZGUoc3RvcmFnZUFjY2Vzc0tleS5vdXRwdXQgYXMgYW55KSwgJ2tleXMnKSwgMCksICd2YWx1ZScpXG5cbiAgICAgICAgY29uc3QgYWNjZXNzS2V5ID0gRm4ubG9va3VwKEZuLmVsZW1lbnQoRm4uZWxlbWVudChzdG9yYWdlQWNjZXNzS2V5Lm91dHB1dC5sb29rdXAoJzAnKSwgMCksIDApLCAndmFsdWUnKVxuXG4gICAgICAgIGNvbnN0IGFjYUVudlN0b3JhZ2UgPSBuZXcgQ29udGFpbmVyQXBwRW52aXJvbm1lbnRTdG9yYWdlKHRoaXMsICdhY2FlbnZzdG9yYWdlJywge1xuICAgICAgICAgICAgbmFtZTogJ2doYXJ1bm5lcmpvYnN0b3JhZ2UnLFxuICAgICAgICAgICAgYWNjZXNzS2V5LFxuICAgICAgICAgICAgYWNjZXNzTW9kZTogJ1JlYWRXcml0ZScsXG4gICAgICAgICAgICBhY2NvdW50TmFtZTogc3RvcmFnZUFjY291bnQubmFtZSxcbiAgICAgICAgICAgIGNvbnRhaW5lckFwcEVudmlyb25tZW50SWQ6IGVudmlyb25tZW50LmlkLFxuICAgICAgICAgICAgc2hhcmVOYW1lOiBzdG9yYWdlU2hhcmUubmFtZSxcbiAgICAgICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgICAgICAgIC8vIE5hbWUgZG9lc24ndCBjcmVhdGUgZGVwZW5kc09uIHJlcXVpcmVtZW50LCBzbyBhZGRpbmcgdGhhdCBleHBsaWNpdGx5XG4gICAgICAgICAgICAgICAgc3RvcmFnZVNoYXJlXG4gICAgICAgICAgICBdIFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhY2FFeHRlcm5hbFN0b3JhZ2UgPSBuZXcgQ29udGFpbmVyQXBwRW52aXJvbm1lbnRTdG9yYWdlKHRoaXMsICdhY2FleHRlcm5hbHN0b3JhZ2UnLCB7XG4gICAgICAgICAgICBuYW1lOiAnZ2hhcnVubmVyZXh0ZXJuYWxzdG9yYWdlJyxcbiAgICAgICAgICAgIGFjY2Vzc0tleSxcbiAgICAgICAgICAgIGFjY2Vzc01vZGU6ICdSZWFkV3JpdGUnLFxuICAgICAgICAgICAgYWNjb3VudE5hbWU6IHN0b3JhZ2VBY2NvdW50Lm5hbWUsXG4gICAgICAgICAgICBjb250YWluZXJBcHBFbnZpcm9ubWVudElkOiBlbnZpcm9ubWVudC5pZCxcbiAgICAgICAgICAgIHNoYXJlTmFtZTogZXh0ZXJuYWxzU2hhcmUubmFtZSxcbiAgICAgICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgICAgICAgIC8vIE5hbWUgZG9lc24ndCBjcmVhdGUgZGVwZW5kc09uIHJlcXVpcmVtZW50LCBzbyBhZGRpbmcgdGhhdCBleHBsaWNpdGx5XG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxzU2hhcmVcbiAgICAgICAgICAgIF0gXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJ1bm5lclZvbHVtZU5hbWUgPSAnd29yaydcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxWb2x1bWVOYW1lID0gJ2V4dGVybmFscydcblxuICAgICAgICAvKipcbiAgICAgICAgICogQHNlZSBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvdGVtcGxhdGVzL21pY3Jvc29mdC5hcHAvam9icz9waXZvdHM9ZGVwbG95bWVudC1sYW5ndWFnZS10ZXJyYWZvcm1cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGdoYVJ1bm5lckpvYiA9IG5ldyBSZXNvdXJjZSh0aGlzLCAnZ2hhUnVubmVySm9iJywge1xuICAgICAgICAgICAgdHlwZTogJ01pY3Jvc29mdC5BcHAvam9ic0AyMDI0LTAyLTAyLXByZXZpZXcnLFxuICAgICAgICAgICAgaWRlbnRpdHk6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdVc2VyQXNzaWduZWQnLFxuICAgICAgICAgICAgICAgICAgICBpZGVudGl0eUlkczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHkuaWRcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBuYW1lOiAnZ2hhLXJ1bm5lci1qb2ItMDEnLFxuICAgICAgICAgICAgcGFyZW50SWQ6IHJnLmlkLFxuICAgICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYW51YWxUcmlnZ2VyQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWxsZWxpc206IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGljYUNvbXBsZXRpb25Db3VudDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyVHlwZTogJ01hbnVhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsaWNhVGltZW91dDogMTIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJpZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyOiBhY3IubG9naW5TZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudElkOiBlbnZpcm9ubWVudC5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5OiAnMkdpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGF2ZSB0byB1c2UgY3VzdG9tIGltYWdlIGFzIHdlIHdhbnQgdG8gcnVuIHNlcnZpY2UgYXMgcm9vdCB0byBiZSBhYmxlIHRvIGluc3RhbGwgcGFja2FnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGAke2Fjci5sb2dpblNlcnZlcn0vcm9vdC1hY3Rpb25zLXJ1bm5lcjpsYXRlc3RgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbWFpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IFsnL2Jpbi9zaCcsICctYycsICdleHBvcnQgRVhFQ0lEPSQoY2F0IC9wcm9jL3N5cy9rZXJuZWwvcmFuZG9tL3V1aWQpICYmIG1rZGlyIC1wIC90bXAvX3dvcmsvJEVYRUNJRCAmJiBsbiAtcyAvdG1wL193b3JrLyRFWEVDSUQgX3dvcmsgJiYgL2hvbWUvcnVubmVyL3J1bi5zaCA7IHJtIC1yIC90bXAvX3dvcmsvJEVYRUNJRCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2x1bWVNb3VudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VudFBhdGg6ICcvdG1wL193b3JrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2x1bWVOYW1lOiBydW5uZXJWb2x1bWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VudFBhdGg6ICcvdG1wL2V4dGVybmFscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9sdW1lTmFtZTogZXh0ZXJuYWxWb2x1bWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvYXp1cmUtY29udGFpbmVyLWFwcHMvaXNzdWVzLzUwMiNpc3N1ZWNvbW1lbnQtMTM0MDIyNTQzOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBUFBTRVRUSU5HX1dFQlNJVEVfU0lURV9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2lkZW50aXR5LXdvcmthcm91bmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9henVyZS1jb250YWluZXItYXBwcy9pc3N1ZXMvNDQyI2lzc3VlY29tbWVudC0xNjY1NjIxMDMxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0FaVVJFX0NMSUVOVF9JRCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50aXR5LmNsaWVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdSR19OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmcubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnTE9HX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbG9nLndvcmtzcGFjZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdTVE9SQUdFX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhY2FFbnZTdG9yYWdlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0VYVEVSTkFMX1NUT1JBR0VfTkFNRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFjYUV4dGVybmFsU3RvcmFnZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdTVUJTQ1JJUFRJT05fSUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdWIuc3Vic2NyaXB0aW9uSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0FDQV9FTlZJUk9OTUVOVF9JRCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudmlyb25tZW50LmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2b2x1bWVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBydW5uZXJWb2x1bWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlTmFtZTogYWNhRW52U3RvcmFnZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlVHlwZTogJ0F6dXJlRmlsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50T3B0aW9uczogJ21mc3ltbGlua3MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGV4dGVybmFsVm9sdW1lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZU5hbWU6IGFjYUV4dGVybmFsU3RvcmFnZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlVHlwZTogJ0F6dXJlRmlsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50T3B0aW9uczogJ21mc3ltbGlua3MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgICAgICAgIHJ1bm5lckNhY2hlXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGlmZWN5Y2xlOiB7XG4gICAgICAgICAgICAgICAgaWdub3JlQ2hhbmdlczogW1xuICAgICAgICAgICAgICAgICAgICAndGFncydcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGF1dG9zY2FsZXJBcHAgPSBuZXcgQ29udGFpbmVyQXBwKHRoaXMsICdhdXRvc2NhbGVyQXBwJywge1xuICAgICAgICAgICAgY29udGFpbmVyQXBwRW52aXJvbm1lbnRJZDogZW52aXJvbm1lbnQuaWQsXG4gICAgICAgICAgICBuYW1lOiAnYXV0b3NjYWxlci1hcHAtMDEnLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJnLm5hbWUsXG4gICAgICAgICAgICByZXZpc2lvbk1vZGU6ICdTaW5nbGUnLFxuICAgICAgICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnU3lzdGVtQXNzaWduZWQsIFVzZXJBc3NpZ25lZCcsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlJZHM6IFtcbiAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHkuaWRcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VjcmV0OiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAncGF0JyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhdC52YWx1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZWdpc3RyeTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LmlkLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXI6IGFjci5sb2dpblNlcnZlclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDUFUgYW5kIE1lbW9yeSBjYW4gYmUgbG93ZXIgd2l0aCB3b3JrbG9hZCBwcm9maWxlXG4gICAgICAgICAgICAgICAgICAgICAgICBjcHU6IDAuMjUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnk6ICcwLjVHaScsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogYCR7YWNyLmxvZ2luU2VydmVyfS9hdXRvc2NhbGVyOnRlc3RgLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2F1dG9zY2FsZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW52OiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnUEFUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjcmV0TmFtZTogJ3BhdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdHSVRIVUJfQ09ORklHX1VSTCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBnaXRodWJDb25maWdVcmwudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0FaVVJFX1RFTkFOVF9JRCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdWIudGVuYW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdTVUJTQ1JJUFRJT05fSUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3ViLnN1YnNjcmlwdGlvbklkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdSRVNPVVJDRV9HUk9VUF9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJnLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0pPQl9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdoYVJ1bm5lckpvYi5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdTQ0FMRV9TRVRfTkFNRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnYWNhLXJ1bm5lci1zZXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBlbmRzT246IFtcbiAgICAgICAgICAgICAgICBhdXRvc2NhbGVyQ2FjaGVcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsaWZlY3ljbGU6IHtcbiAgICAgICAgICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXG4gICAgICAgICAgICAgICAgICAgICd0YWdzJyxcbiAgICAgICAgICAgICAgICAgICAgJ3dvcmtsb2FkX3Byb2ZpbGVfbmFtZSdcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvYXp1cmUtY29udGFpbmVyLWFwcHMvaXNzdWVzLzEwMjRcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZURlZmluaXRpb24odGhpcywgJ2pvYlJvbGUnLCB7XG4gICAgICAgICAgICBuYW1lOiBgZ2hhLWV4YW1wbGUtcmV2aXNpb24tc3RhcnQtcm9sZS0ke3JhbmRvbS5yZXN1bHR9YCxcbiAgICAgICAgICAgIHNjb3BlOiBzdWIuaWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy9zdGFydC9hY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy9zdG9wL2FjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWljcm9zb2Z0LmFwcC9qb2JzL3JlYWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy9leGVjdXRpb25zL3JlYWQnLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBqb2JDcmVhdGlvblJvbGUgPSBuZXcgUm9sZURlZmluaXRpb24odGhpcywgJ2pvYkNyZWF0aW9uUm9sZScsIHtcbiAgICAgICAgICAgIG5hbWU6IGBnaGEtZXhhbXBsZS1yZXZpc2lvbi1jcmVhdGUtcm9sZS0ke3JhbmRvbS5yZXN1bHR9YCxcbiAgICAgICAgICAgIHNjb3BlOiBzdWIuaWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy9zdGFydC9hY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy9zdG9wL2FjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWljcm9zb2Z0LmFwcC9qb2JzL3JlYWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ21pY3Jvc29mdC5hcHAvam9icy93cml0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWljcm9zb2Z0LmFwcC9qb2JzL2V4ZWN1dGlvbnMvcmVhZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbWljcm9zb2Z0LmFwcC9tYW5hZ2VkRW52aXJvbm1lbnRzL2pvaW4vYWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtaWNyb3NvZnQuYXBwL2pvYnMvZGVsZXRlJyAvLyBjbGVhbnVwIGZvciBqb2JzXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEFsbG93IGF1dG9zY2FsZXIgdG8gY3JlYXRlIG5ldyByZXZpc2lvbiBvZiBhcHBcbiAgICAgICAgbmV3IFJvbGVBc3NpZ25tZW50KHRoaXMsICdzY2FsZUpvYlJvbGVBc3NpZ25tZW50Jywge1xuICAgICAgICAgICAgcHJpbmNpcGFsSWQ6IGF1dG9zY2FsZXJBcHAuaWRlbnRpdHkucHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBzY29wZTogZ2hhUnVubmVySm9iLmlkLFxuICAgICAgICAgICAgcm9sZURlZmluaXRpb25JZDogcm9sZS5yb2xlRGVmaW5pdGlvblJlc291cmNlSWRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBBbGxvdyBydW5uZXIgdG8gc3RhcnQgdGhlIGpvYi4gQXMgZWFjaCBvbmUgY3JlYXRlZCBuZXcgam9iLCBoYXZlIHRvIGdpdmUgdG8gUkcgbGV2ZWwuXG4gICAgICAgIG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCAnYWN0aW9uQ29udGFpbmVyU3RhcnRSb2xlQXNzaWdubWVudCcsIHtcbiAgICAgICAgICAgIHByaW5jaXBhbElkOiBpZGVudGl0eS5wcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHNjb3BlOiByZy5pZCxcbiAgICAgICAgICAgIHJvbGVEZWZpbml0aW9uSWQ6IGpvYkNyZWF0aW9uUm9sZS5yb2xlRGVmaW5pdGlvblJlc291cmNlSWRcbiAgICAgICAgfSlcblxuICAgICAgICBuZXcgUm9sZUFzc2lnbm1lbnQodGhpcywgJ2ltYWdlUHVzaFJvbGVBc3NpZ25tZW50Jywge1xuICAgICAgICAgICAgcHJpbmNpcGFsSWQ6IGlkZW50aXR5LnByaW5jaXBhbElkLFxuICAgICAgICAgICAgc2NvcGU6IGFjci5pZCxcbiAgICAgICAgICAgIHJvbGVEZWZpbml0aW9uTmFtZTogJ0FjclB1c2gnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCAnam9iTG9nUmVhZEFzc2lnbm1lbnQnLCB7XG4gICAgICAgICAgICBwcmluY2lwYWxJZDogaWRlbnRpdHkucHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBzY29wZTogbG9nLmlkLFxuICAgICAgICAgICAgcm9sZURlZmluaXRpb25OYW1lOiAnTG9nIEFuYWx5dGljcyBSZWFkZXInXG4gICAgICAgIH0pXG4gICAgfVxufSJdfQ==
|
package/lib/lib/gcp.d.ts
ADDED