@flit/cdk-pipeline 1.0.3 → 1.0.5

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,115 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.StackSegmentConstructed = exports.StackSegment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
7
+ const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
8
+ const path = require("path");
9
+ const publish_assets_action_1 = require("./publish-assets-action");
10
+ const artifact_1 = require("./artifact");
11
+ const segment_1 = require("./segment");
12
+ /**
13
+ * @category Segments
14
+ */
15
+ class StackSegment extends segment_1.Segment {
16
+ constructor(props) {
17
+ super(props);
18
+ this.props = props;
19
+ }
20
+ construct(scope) {
21
+ return new StackSegmentConstructed(scope, `Deploy${this.props.stack.stackName}`, {
22
+ ...this.props,
23
+ input: this.inputs[0],
24
+ extraInputs: this.inputs.slice(1),
25
+ });
26
+ }
27
+ }
28
+ _a = JSII_RTTI_SYMBOL_1;
29
+ StackSegment[_a] = { fqn: "@flit/cdk-pipeline.StackSegment", version: "1.0.5" };
30
+ exports.StackSegment = StackSegment;
31
+ class StackSegmentConstructed extends segment_1.SegmentConstructed {
32
+ constructor(scope, id, props) {
33
+ super(scope, id);
34
+ this.name = props.stack.stackName;
35
+ const buildArtifact = new artifact_1.Artifact();
36
+ this.actions = [
37
+ new aws_codepipeline_actions_1.CodeBuildAction({
38
+ actionName: "Build",
39
+ runOrder: 1,
40
+ input: props.input,
41
+ extraInputs: props.extraInputs,
42
+ outputs: [buildArtifact],
43
+ environmentVariables: props.environmentVariables,
44
+ project: new aws_codebuild_1.Project(this, "UpdateCodeBuild", {
45
+ environment: {
46
+ computeType: aws_codebuild_1.ComputeType.MEDIUM,
47
+ buildImage: aws_codebuild_1.LinuxBuildImage.AMAZON_LINUX_2_4,
48
+ privileged: true,
49
+ },
50
+ buildSpec: aws_codebuild_1.BuildSpec.fromObject({
51
+ version: "0.2",
52
+ phases: {
53
+ install: {
54
+ "runtime-versions": {
55
+ docker: 20,
56
+ nodejs: 18,
57
+ },
58
+ commands: ["npm ci"],
59
+ },
60
+ build: {
61
+ commands: props.command,
62
+ },
63
+ },
64
+ artifacts: {
65
+ files: [path.join(scope.buildDir, "**/*")],
66
+ },
67
+ cache: {
68
+ paths: ["/root/.npm/**/*"],
69
+ },
70
+ }),
71
+ }),
72
+ }),
73
+ new publish_assets_action_1.PublishAssetsAction(this, "PublishAssets", {
74
+ actionName: "PublishAssets",
75
+ runOrder: 2,
76
+ input: buildArtifact,
77
+ manifestPath: scope.buildDir,
78
+ }),
79
+ new aws_codepipeline_actions_1.CloudFormationCreateReplaceChangeSetAction({
80
+ actionName: "PrepareChanges",
81
+ runOrder: 3,
82
+ stackName: props.stackName ? props.stackName : props.stack.stackName,
83
+ account: props.account,
84
+ region: props.region,
85
+ changeSetName: `${props.stack.stackName}Changes`,
86
+ adminPermissions: true,
87
+ templatePath: buildArtifact.atPath(path.join(scope.buildDir, props.stack.templateFile)),
88
+ }),
89
+ ...(props.manualApproval
90
+ ? [
91
+ new aws_codepipeline_actions_1.ManualApprovalAction({
92
+ actionName: "ApproveChanges",
93
+ runOrder: 4,
94
+ }),
95
+ ]
96
+ : []),
97
+ new aws_codepipeline_actions_1.CloudFormationExecuteChangeSetAction({
98
+ actionName: "ExecuteChanges",
99
+ runOrder: props.manualApproval ? 5 : 4,
100
+ stackName: props.stackName ? props.stackName : props.stack.stackName,
101
+ account: props.account,
102
+ region: props.region,
103
+ changeSetName: `${props.stack.stackName}Changes`,
104
+ output: props.output,
105
+ outputFileName: props.output
106
+ ? `${props.stack.stackName}Output.json`
107
+ : undefined,
108
+ }),
109
+ ];
110
+ }
111
+ }
112
+ _b = JSII_RTTI_SYMBOL_1;
113
+ StackSegmentConstructed[_b] = { fqn: "@flit/cdk-pipeline.StackSegmentConstructed", version: "1.0.5" };
114
+ exports.StackSegmentConstructed = StackSegmentConstructed;
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1zZWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNkRBTW1DO0FBRW5DLG1GQUs4QztBQUM5Qyw2QkFBNkI7QUFFN0IsbUVBQThEO0FBQzlELHlDQUFzQztBQUN0Qyx1Q0FBd0Q7QUE4Q3hEOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsaUJBQU87SUFHdkMsWUFBWSxLQUF3QjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWU7UUFDdkIsT0FBTyxJQUFJLHVCQUF1QixDQUNoQyxLQUFLLEVBQ0wsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFDckM7WUFDRSxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbEMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7OztBQWxCVSxvQ0FBWTtBQWtDekIsTUFBYSx1QkFBd0IsU0FBUSw0QkFBa0I7SUFJN0QsWUFDRSxLQUFlLEVBQ2YsRUFBVSxFQUNWLEtBQW1DO1FBRW5DLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUVsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsSUFBSSwwQ0FBZSxDQUFDO2dCQUNsQixVQUFVLEVBQUUsT0FBTztnQkFDbkIsUUFBUSxFQUFF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LENBQUMsS0FBSyxDQUFDLFNBQVMsU0FBUztnQkFDaEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixjQUFjLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQzFCLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxhQUFhO29CQUN2QyxDQUFDLENBQUMsU0FBUzthQUNkLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQzs7OztBQTNGVSwwREFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlLFxuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBMaW51eEJ1aWxkSW1hZ2UsXG4gIFByb2plY3QsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBJQWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ3JlYXRlUmVwbGFjZUNoYW5nZVNldEFjdGlvbixcbiAgQ2xvdWRGb3JtYXRpb25FeGVjdXRlQ2hhbmdlU2V0QWN0aW9uLFxuICBDb2RlQnVpbGRBY3Rpb24sXG4gIE1hbnVhbEFwcHJvdmFsQWN0aW9uLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IFB1Ymxpc2hBc3NldHNBY3Rpb24gfSBmcm9tIFwiLi9wdWJsaXNoLWFzc2V0cy1hY3Rpb25cIjtcbmltcG9ydCB7IEFydGlmYWN0IH0gZnJvbSBcIi4vYXJ0aWZhY3RcIjtcbmltcG9ydCB7IFNlZ21lbnQsIFNlZ21lbnRDb25zdHJ1Y3RlZCB9IGZyb20gXCIuL3NlZ21lbnRcIjtcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSBcIi4vcGlwZWxpbmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlZ21lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYmUgZGVwbG95ZWQgaW4gdGhpcyBzZWdtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrO1xuICAvKipcbiAgICogVGhlIGlucHV0IGFyZmlmYWN0IGZvciB0aGUgYnVpbGQgc3RhZ2UuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogQXJ0aWZhY3QgfCBBcnRpZmFjdFtdO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQocykgdG8gYnVpbGQgdGhlIHN0YWNrLlxuICAgKiBAZXhhbXBsZSBcImNkayBzeW50aCBTdGFja05hbWUgLS1zdHJpY3QgLS1leGNsdXNpdmVseVwiXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcyBmb3IgdGhlIGJ1aWxkIHN0YWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRWYXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IEJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZSB9O1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWNrIHRvIGRlcGxveSB0aGUgY2hhbmdlcyB0by5cbiAgICogQGRlYWZ1bHQgVGhlIG5hbWUgb2YgdGhlIGdpdmVuIHN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IHRoaXMgQWN0aW9uIGlzIHN1cHBvc2VkIHRvIG9wZXJhdGUgaW4uXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdGhlIGdpdmVuIEFjdGlvbiByZXNpZGVzIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFydGlmYWN0IHRvIGhvbGQgdGhlIHN0YWNrIGRlcGxveW1lbnQgb3V0cHV0IGZpbGUuXG4gICAqIEBkZWZhdWx0IG5vIG91dHB1dCBhcnRpZmFjdFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0PzogQXJ0aWZhY3Q7XG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgc3RhZ2UgcmVxdWlyZSBtYW51YWwgYXBwcm92YWwgb2YgdGhlIGNoYW5nZSBzZXQ/XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtYW51YWxBcHByb3ZhbD86IEJvb2xlYW47XG59XG5cbi8qKlxuICogQGNhdGVnb3J5IFNlZ21lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja1NlZ21lbnQgZXh0ZW5kcyBTZWdtZW50IHtcbiAgcmVhZG9ubHkgcHJvcHM6IFN0YWNrU2VnbWVudFByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTdGFja1NlZ21lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICBjb25zdHJ1Y3Qoc2NvcGU6IFBpcGVsaW5lKTogU2VnbWVudENvbnN0cnVjdGVkIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrU2VnbWVudENvbnN0cnVjdGVkKFxuICAgICAgc2NvcGUsXG4gICAgICBgRGVwbG95JHt0aGlzLnByb3BzLnN0YWNrLnN0YWNrTmFtZX1gLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgICBpbnB1dDogdGhpcy5pbnB1dHNbMF0sXG4gICAgICAgIGV4dHJhSW5wdXRzOiB0aGlzLmlucHV0cy5zbGljZSgxKSxcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tTZWdtZW50Q29uc3RydWN0ZWRQcm9wcyB7XG4gIHJlYWRvbmx5IHN0YWNrOiBTdGFjaztcbiAgcmVhZG9ubHkgY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW107XG4gIHJlYWRvbmx5IGVudmlyb25tZW50VmFyaWFibGVzPzogeyBba2V5OiBzdHJpbmddOiBCdWlsZEVudmlyb25tZW50VmFyaWFibGUgfTtcbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlucHV0OiBBcnRpZmFjdDtcbiAgcmVhZG9ubHkgZXh0cmFJbnB1dHM/OiBBcnRpZmFjdFtdO1xuICByZWFkb25seSBvdXRwdXQ/OiBBcnRpZmFjdDtcbiAgcmVhZG9ubHkgbWFudWFsQXBwcm92YWw/OiBCb29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tTZWdtZW50Q29uc3RydWN0ZWQgZXh0ZW5kcyBTZWdtZW50Q29uc3RydWN0ZWQge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IElBY3Rpb25bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogUGlwZWxpbmUsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU3RhY2tTZWdtZW50Q29uc3RydWN0ZWRQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMuc3RhY2suc3RhY2tOYW1lO1xuXG4gICAgY29uc3QgYnVpbGRBcnRpZmFjdCA9IG5ldyBBcnRpZmFjdCgpO1xuXG4gICAgdGhpcy5hY3Rpb25zID0gW1xuICAgICAgbmV3IENvZGVCdWlsZEFjdGlvbih7XG4gICAgICAgIGFjdGlvbk5hbWU6IFwiQnVpbGRcIixcbiAgICAgICAgcnVuT3JkZXI6IDEsXG4gICAgICAgIGlucHV0OiBwcm9wcy5pbnB1dCxcbiAgICAgICAgZXh0cmFJbnB1dHM6IHByb3BzLmV4dHJhSW5wdXRzLFxuICAgICAgICBvdXRwdXRzOiBbYnVpbGRBcnRpZmFjdF0sXG4gICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcyxcbiAgICAgICAgcHJvamVjdDogbmV3IFByb2plY3QodGhpcywgXCJVcGRhdGVDb2RlQnVpbGRcIiwge1xuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBjb21wdXRlVHlwZTogQ29tcHV0ZVR5cGUuTUVESVVNLFxuICAgICAgICAgICAgYnVpbGRJbWFnZTogTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzQsXG4gICAgICAgICAgICBwcml2aWxlZ2VkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjAuMlwiLFxuICAgICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgICBcInJ1bnRpbWUtdmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgZG9ja2VyOiAyMCxcbiAgICAgICAgICAgICAgICAgIG5vZGVqczogMTgsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb21tYW5kczogW1wibnBtIGNpXCJdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBwcm9wcy5jb21tYW5kLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFydGlmYWN0czoge1xuICAgICAgICAgICAgICBmaWxlczogW3BhdGguam9pbihzY29wZS5idWlsZERpciwgXCIqKi8qXCIpXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYWNoZToge1xuICAgICAgICAgICAgICBwYXRoczogW1wiL3Jvb3QvLm5wbS8qKi8qXCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICAgIG5ldyBQdWJsaXNoQXNzZXRzQWN0aW9uKHRoaXMsIFwiUHVibGlzaEFzc2V0c1wiLCB7XG4gICAgICAgIGFjdGlvbk5hbWU6IFwiUHVibGlzaEFzc2V0c1wiLFxuICAgICAgICBydW5PcmRlcjogMixcbiAgICAgICAgaW5wdXQ6IGJ1aWxkQXJ0aWZhY3QsXG4gICAgICAgIG1hbmlmZXN0UGF0aDogc2NvcGUuYnVpbGREaXIsXG4gICAgICB9KSxcbiAgICAgIG5ldyBDbG91ZEZvcm1hdGlvbkNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb24oe1xuICAgICAgICBhY3Rpb25OYW1lOiBcIlByZXBhcmVDaGFuZ2VzXCIsXG4gICAgICAgIHJ1bk9yZGVyOiAzLFxuICAgICAgICBzdGFja05hbWU6IHByb3BzLnN0YWNrTmFtZSA/IHByb3BzLnN0YWNrTmFtZSA6IHByb3BzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgYWNjb3VudDogcHJvcHMuYWNjb3VudCxcbiAgICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICAgIGNoYW5nZVNldE5hbWU6IGAke3Byb3BzLnN0YWNrLnN0YWNrTmFtZX1DaGFuZ2VzYCxcbiAgICAgICAgYWRtaW5QZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgdGVtcGxhdGVQYXRoOiBidWlsZEFydGlmYWN0LmF0UGF0aChcbiAgICAgICAgICBwYXRoLmpvaW4oc2NvcGUuYnVpbGREaXIsIHByb3BzLnN0YWNrLnRlbXBsYXRlRmlsZSlcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHByb3BzLm1hbnVhbEFwcHJvdmFsXG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IE1hbnVhbEFwcHJvdmFsQWN0aW9uKHtcbiAgICAgICAgICAgICAgYWN0aW9uTmFtZTogXCJBcHByb3ZlQ2hhbmdlc1wiLFxuICAgICAgICAgICAgICBydW5PcmRlcjogNCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICBuZXcgQ2xvdWRGb3JtYXRpb25FeGVjdXRlQ2hhbmdlU2V0QWN0aW9uKHtcbiAgICAgICAgYWN0aW9uTmFtZTogXCJFeGVjdXRlQ2hhbmdlc1wiLFxuICAgICAgICBydW5PcmRlcjogcHJvcHMubWFudWFsQXBwcm92YWwgPyA1IDogNCxcbiAgICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPyBwcm9wcy5zdGFja05hbWUgOiBwcm9wcy5zdGFjay5zdGFja05hbWUsXG4gICAgICAgIGFjY291bnQ6IHByb3BzLmFjY291bnQsXG4gICAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgICBjaGFuZ2VTZXROYW1lOiBgJHtwcm9wcy5zdGFjay5zdGFja05hbWV9Q2hhbmdlc2AsXG4gICAgICAgIG91dHB1dDogcHJvcHMub3V0cHV0LFxuICAgICAgICBvdXRwdXRGaWxlTmFtZTogcHJvcHMub3V0cHV0XG4gICAgICAgICAgPyBgJHtwcm9wcy5zdGFjay5zdGFja05hbWV9T3V0cHV0Lmpzb25gXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9KSxcbiAgICBdO1xuICB9XG59XG4iXX0=