@orcabus/platform-cdk-constructs 0.0.7-beta.4 → 0.0.7-beta.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.
package/.jsii CHANGED
@@ -4359,12 +4359,121 @@
4359
4359
  ],
4360
4360
  "symbolId": "api-gateway/api-gateway:OrcaBusApiGatewayProps"
4361
4361
  },
4362
- "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline": {
4362
+ "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket": {
4363
4363
  "assembly": "@orcabus/platform-cdk-constructs",
4364
4364
  "base": "constructs.Construct",
4365
4365
  "docs": {
4366
4366
  "stability": "experimental"
4367
4367
  },
4368
+ "fqn": "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket",
4369
+ "initializer": {
4370
+ "docs": {
4371
+ "stability": "experimental"
4372
+ },
4373
+ "locationInModule": {
4374
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4375
+ "line": 46
4376
+ },
4377
+ "parameters": [
4378
+ {
4379
+ "name": "scope",
4380
+ "type": {
4381
+ "fqn": "constructs.Construct"
4382
+ }
4383
+ },
4384
+ {
4385
+ "name": "id",
4386
+ "type": {
4387
+ "primitive": "string"
4388
+ }
4389
+ }
4390
+ ]
4391
+ },
4392
+ "interfaces": [
4393
+ "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket"
4394
+ ],
4395
+ "kind": "class",
4396
+ "locationInModule": {
4397
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4398
+ "line": 33
4399
+ },
4400
+ "methods": [
4401
+ {
4402
+ "docs": {
4403
+ "returns": "ICrossDeploymentArtifactBucket",
4404
+ "stability": "experimental",
4405
+ "summary": "Imports an existing cross-deployment artifact bucket and its KMS key using SSM and resource lookups."
4406
+ },
4407
+ "locationInModule": {
4408
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4409
+ "line": 100
4410
+ },
4411
+ "name": "fromLookup",
4412
+ "parameters": [
4413
+ {
4414
+ "docs": {
4415
+ "summary": "The scope in which to look up the artifact bucket."
4416
+ },
4417
+ "name": "scope",
4418
+ "type": {
4419
+ "fqn": "constructs.Construct"
4420
+ }
4421
+ }
4422
+ ],
4423
+ "returns": {
4424
+ "type": {
4425
+ "fqn": "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket"
4426
+ }
4427
+ },
4428
+ "static": true
4429
+ }
4430
+ ],
4431
+ "name": "CrossDeploymentArtifactBucket",
4432
+ "namespace": "deploymentPipeline",
4433
+ "properties": [
4434
+ {
4435
+ "docs": {
4436
+ "stability": "experimental",
4437
+ "summary": "The S3 bucket used to store artifacts for cross-deployment pipelines."
4438
+ },
4439
+ "immutable": true,
4440
+ "locationInModule": {
4441
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4442
+ "line": 40
4443
+ },
4444
+ "name": "artifactBucket",
4445
+ "overrides": "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket",
4446
+ "type": {
4447
+ "fqn": "aws-cdk-lib.aws_s3.IBucket"
4448
+ }
4449
+ },
4450
+ {
4451
+ "docs": {
4452
+ "stability": "experimental",
4453
+ "summary": "The KMS key used to encrypt artifacts for cross-deployment pipelines."
4454
+ },
4455
+ "immutable": true,
4456
+ "locationInModule": {
4457
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4458
+ "line": 44
4459
+ },
4460
+ "name": "artifactKms",
4461
+ "overrides": "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket",
4462
+ "type": {
4463
+ "fqn": "aws-cdk-lib.aws_kms.IKey"
4464
+ }
4465
+ }
4466
+ ],
4467
+ "symbolId": "deployment-stack-pipeline/artifact-bucket:CrossDeploymentArtifactBucket"
4468
+ },
4469
+ "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline": {
4470
+ "assembly": "@orcabus/platform-cdk-constructs",
4471
+ "base": "constructs.Construct",
4472
+ "docs": {
4473
+ "remarks": "Prerequisite: Ensure that the \"CrossDeploymentArtifactBucket\" stack is deployed in the TOOLCHAIN account\nbefore using this construct.",
4474
+ "stability": "experimental",
4475
+ "summary": "A CDK construct that creates a deployment pipeline across environments for the OrcaBus project."
4476
+ },
4368
4477
  "fqn": "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline",
4369
4478
  "initializer": {
4370
4479
  "docs": {
@@ -4372,7 +4481,7 @@
4372
4481
  },
4373
4482
  "locationInModule": {
4374
4483
  "filename": "deployment-stack-pipeline/pipeline.ts",
4375
- "line": 146
4484
+ "line": 164
4376
4485
  },
4377
4486
  "parameters": [
4378
4487
  {
@@ -4398,7 +4507,7 @@
4398
4507
  "kind": "class",
4399
4508
  "locationInModule": {
4400
4509
  "filename": "deployment-stack-pipeline/pipeline.ts",
4401
- "line": 140
4510
+ "line": 158
4402
4511
  },
4403
4512
  "name": "DeploymentStackPipeline",
4404
4513
  "namespace": "deploymentPipeline",
@@ -4411,7 +4520,7 @@
4411
4520
  "immutable": true,
4412
4521
  "locationInModule": {
4413
4522
  "filename": "deployment-stack-pipeline/pipeline.ts",
4414
- "line": 144
4523
+ "line": 162
4415
4524
  },
4416
4525
  "name": "pipeline",
4417
4526
  "type": {
@@ -4431,7 +4540,7 @@
4431
4540
  "kind": "interface",
4432
4541
  "locationInModule": {
4433
4542
  "filename": "deployment-stack-pipeline/pipeline.ts",
4434
- "line": 72
4543
+ "line": 73
4435
4544
  },
4436
4545
  "name": "DeploymentStackPipelineProps",
4437
4546
  "namespace": "deploymentPipeline",
@@ -4446,7 +4555,7 @@
4446
4555
  "immutable": true,
4447
4556
  "locationInModule": {
4448
4557
  "filename": "deployment-stack-pipeline/pipeline.ts",
4449
- "line": 108
4558
+ "line": 112
4450
4559
  },
4451
4560
  "name": "cdkSynthCmd",
4452
4561
  "type": {
@@ -4461,13 +4570,17 @@
4461
4570
  {
4462
4571
  "abstract": true,
4463
4572
  "docs": {
4573
+ "custom": {
4574
+ "": "\".\nThis restriction is due to AWS resource tagging requirements."
4575
+ },
4576
+ "remarks": "Avoid using branch names that contain special characters such as parentheses.\nAllowed special characters are: \"+ - = . _ : /",
4464
4577
  "stability": "experimental",
4465
- "summary": "The github branch name it will listen to."
4578
+ "summary": "The GitHub branch name the pipeline will listen to."
4466
4579
  },
4467
4580
  "immutable": true,
4468
4581
  "locationInModule": {
4469
4582
  "filename": "deployment-stack-pipeline/pipeline.ts",
4470
- "line": 76
4583
+ "line": 80
4471
4584
  },
4472
4585
  "name": "githubBranch",
4473
4586
  "type": {
@@ -4484,7 +4597,7 @@
4484
4597
  "immutable": true,
4485
4598
  "locationInModule": {
4486
4599
  "filename": "deployment-stack-pipeline/pipeline.ts",
4487
- "line": 80
4600
+ "line": 84
4488
4601
  },
4489
4602
  "name": "githubRepo",
4490
4603
  "type": {
@@ -4500,7 +4613,7 @@
4500
4613
  "immutable": true,
4501
4614
  "locationInModule": {
4502
4615
  "filename": "deployment-stack-pipeline/pipeline.ts",
4503
- "line": 97
4616
+ "line": 101
4504
4617
  },
4505
4618
  "name": "pipelineName",
4506
4619
  "type": {
@@ -4516,7 +4629,7 @@
4516
4629
  "immutable": true,
4517
4630
  "locationInModule": {
4518
4631
  "filename": "deployment-stack-pipeline/pipeline.ts",
4519
- "line": 84
4632
+ "line": 88
4520
4633
  },
4521
4634
  "name": "stack",
4522
4635
  "type": {
@@ -4532,7 +4645,7 @@
4532
4645
  "immutable": true,
4533
4646
  "locationInModule": {
4534
4647
  "filename": "deployment-stack-pipeline/pipeline.ts",
4535
- "line": 93
4648
+ "line": 97
4536
4649
  },
4537
4650
  "name": "stackConfig",
4538
4651
  "type": {
@@ -4549,7 +4662,7 @@
4549
4662
  "immutable": true,
4550
4663
  "locationInModule": {
4551
4664
  "filename": "deployment-stack-pipeline/pipeline.ts",
4552
- "line": 89
4665
+ "line": 93
4553
4666
  },
4554
4667
  "name": "stackName",
4555
4668
  "type": {
@@ -4566,7 +4679,7 @@
4566
4679
  "immutable": true,
4567
4680
  "locationInModule": {
4568
4681
  "filename": "deployment-stack-pipeline/pipeline.ts",
4569
- "line": 114
4682
+ "line": 118
4570
4683
  },
4571
4684
  "name": "cdkOut",
4572
4685
  "optional": true,
@@ -4584,7 +4697,7 @@
4584
4697
  "immutable": true,
4585
4698
  "locationInModule": {
4586
4699
  "filename": "deployment-stack-pipeline/pipeline.ts",
4587
- "line": 129
4700
+ "line": 133
4588
4701
  },
4589
4702
  "name": "enableSlackNotification",
4590
4703
  "optional": true,
@@ -4602,7 +4715,7 @@
4602
4715
  "immutable": true,
4603
4716
  "locationInModule": {
4604
4717
  "filename": "deployment-stack-pipeline/pipeline.ts",
4605
- "line": 104
4718
+ "line": 108
4606
4719
  },
4607
4720
  "name": "filePaths",
4608
4721
  "optional": true,
@@ -4626,7 +4739,7 @@
4626
4739
  "immutable": true,
4627
4740
  "locationInModule": {
4628
4741
  "filename": "deployment-stack-pipeline/pipeline.ts",
4629
- "line": 137
4742
+ "line": 141
4630
4743
  },
4631
4744
  "name": "notificationEvents",
4632
4745
  "optional": true,
@@ -4639,6 +4752,25 @@
4639
4752
  }
4640
4753
  }
4641
4754
  },
4755
+ {
4756
+ "abstract": true,
4757
+ "docs": {
4758
+ "default": "True",
4759
+ "remarks": "If set to true, it will look up the existing artifact bucket in the TOOLCHAIN account.",
4760
+ "stability": "experimental",
4761
+ "summary": "Whether to reuse the existing artifact bucket for cross-deployment pipelines."
4762
+ },
4763
+ "immutable": true,
4764
+ "locationInModule": {
4765
+ "filename": "deployment-stack-pipeline/pipeline.ts",
4766
+ "line": 149
4767
+ },
4768
+ "name": "reuseExistingArtifactBucket",
4769
+ "optional": true,
4770
+ "type": {
4771
+ "primitive": "boolean"
4772
+ }
4773
+ },
4642
4774
  {
4643
4775
  "abstract": true,
4644
4776
  "docs": {
@@ -4648,7 +4780,7 @@
4648
4780
  "immutable": true,
4649
4781
  "locationInModule": {
4650
4782
  "filename": "deployment-stack-pipeline/pipeline.ts",
4651
- "line": 124
4783
+ "line": 128
4652
4784
  },
4653
4785
  "name": "stageEnv",
4654
4786
  "optional": true,
@@ -4667,7 +4799,7 @@
4667
4799
  "immutable": true,
4668
4800
  "locationInModule": {
4669
4801
  "filename": "deployment-stack-pipeline/pipeline.ts",
4670
- "line": 120
4802
+ "line": 124
4671
4803
  },
4672
4804
  "name": "synthBuildSpec",
4673
4805
  "optional": true,
@@ -4683,6 +4815,55 @@
4683
4815
  ],
4684
4816
  "symbolId": "deployment-stack-pipeline/pipeline:DeploymentStackPipelineProps"
4685
4817
  },
4818
+ "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket": {
4819
+ "assembly": "@orcabus/platform-cdk-constructs",
4820
+ "docs": {
4821
+ "stability": "experimental"
4822
+ },
4823
+ "fqn": "@orcabus/platform-cdk-constructs.deploymentPipeline.ICrossDeploymentArtifactBucket",
4824
+ "kind": "interface",
4825
+ "locationInModule": {
4826
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4827
+ "line": 22
4828
+ },
4829
+ "name": "ICrossDeploymentArtifactBucket",
4830
+ "namespace": "deploymentPipeline",
4831
+ "properties": [
4832
+ {
4833
+ "abstract": true,
4834
+ "docs": {
4835
+ "stability": "experimental",
4836
+ "summary": "The S3 bucket used to store artifacts for cross-deployment pipelines."
4837
+ },
4838
+ "immutable": true,
4839
+ "locationInModule": {
4840
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4841
+ "line": 26
4842
+ },
4843
+ "name": "artifactBucket",
4844
+ "type": {
4845
+ "fqn": "aws-cdk-lib.aws_s3.IBucket"
4846
+ }
4847
+ },
4848
+ {
4849
+ "abstract": true,
4850
+ "docs": {
4851
+ "stability": "experimental",
4852
+ "summary": "The KMS key used to encrypt artifacts for cross-deployment pipelines."
4853
+ },
4854
+ "immutable": true,
4855
+ "locationInModule": {
4856
+ "filename": "deployment-stack-pipeline/artifact-bucket.ts",
4857
+ "line": 30
4858
+ },
4859
+ "name": "artifactKms",
4860
+ "type": {
4861
+ "fqn": "aws-cdk-lib.aws_kms.IKey"
4862
+ }
4863
+ }
4864
+ ],
4865
+ "symbolId": "deployment-stack-pipeline/artifact-bucket:ICrossDeploymentArtifactBucket"
4866
+ },
4686
4867
  "@orcabus/platform-cdk-constructs.deploymentPipeline.StackConfigProps": {
4687
4868
  "assembly": "@orcabus/platform-cdk-constructs",
4688
4869
  "datatype": true,
@@ -4693,7 +4874,7 @@
4693
4874
  "kind": "interface",
4694
4875
  "locationInModule": {
4695
4876
  "filename": "deployment-stack-pipeline/pipeline.ts",
4696
- "line": 57
4877
+ "line": 58
4697
4878
  },
4698
4879
  "name": "StackConfigProps",
4699
4880
  "namespace": "deploymentPipeline",
@@ -4707,7 +4888,7 @@
4707
4888
  "immutable": true,
4708
4889
  "locationInModule": {
4709
4890
  "filename": "deployment-stack-pipeline/pipeline.ts",
4710
- "line": 61
4891
+ "line": 62
4711
4892
  },
4712
4893
  "name": "beta",
4713
4894
  "type": {
@@ -4728,7 +4909,7 @@
4728
4909
  "immutable": true,
4729
4910
  "locationInModule": {
4730
4911
  "filename": "deployment-stack-pipeline/pipeline.ts",
4731
- "line": 65
4912
+ "line": 66
4732
4913
  },
4733
4914
  "name": "gamma",
4734
4915
  "type": {
@@ -4749,7 +4930,7 @@
4749
4930
  "immutable": true,
4750
4931
  "locationInModule": {
4751
4932
  "filename": "deployment-stack-pipeline/pipeline.ts",
4752
- "line": 69
4933
+ "line": 70
4753
4934
  },
4754
4935
  "name": "prod",
4755
4936
  "type": {
@@ -4774,7 +4955,7 @@
4774
4955
  "kind": "interface",
4775
4956
  "locationInModule": {
4776
4957
  "filename": "deployment-stack-pipeline/pipeline.ts",
4777
- "line": 42
4958
+ "line": 43
4778
4959
  },
4779
4960
  "name": "StageEnvProps",
4780
4961
  "namespace": "deploymentPipeline",
@@ -4788,7 +4969,7 @@
4788
4969
  "immutable": true,
4789
4970
  "locationInModule": {
4790
4971
  "filename": "deployment-stack-pipeline/pipeline.ts",
4791
- "line": 46
4972
+ "line": 47
4792
4973
  },
4793
4974
  "name": "beta",
4794
4975
  "type": {
@@ -4804,7 +4985,7 @@
4804
4985
  "immutable": true,
4805
4986
  "locationInModule": {
4806
4987
  "filename": "deployment-stack-pipeline/pipeline.ts",
4807
- "line": 50
4988
+ "line": 51
4808
4989
  },
4809
4990
  "name": "gamma",
4810
4991
  "type": {
@@ -4820,7 +5001,7 @@
4820
5001
  "immutable": true,
4821
5002
  "locationInModule": {
4822
5003
  "filename": "deployment-stack-pipeline/pipeline.ts",
4823
- "line": 54
5004
+ "line": 55
4824
5005
  },
4825
5006
  "name": "prod",
4826
5007
  "type": {
@@ -5670,6 +5851,6 @@
5670
5851
  "symbolId": "lambda/index:PythonUvFunctionProps"
5671
5852
  }
5672
5853
  },
5673
- "version": "0.0.7-beta.4",
5674
- "fingerprint": "44ATQ0jPKgfwp0bYUdHN7mTe2/UH8zbSq3iipUUYpXo="
5854
+ "version": "0.0.7-beta.5",
5855
+ "fingerprint": "PBVaS8a4Gi+XVjQM76d2UWMlUMdrXxqi/OjDoRDWfws="
5675
5856
  }
@@ -15,7 +15,7 @@ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
15
15
  const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
16
16
  const config_1 = require("./config");
17
17
  class OrcaBusApiGateway extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.7-beta.4" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.7-beta.5" };
19
19
  /**
20
20
  * The AWS region where the API Gateway is deployed.
21
21
  */
@@ -0,0 +1,34 @@
1
+ import { Construct } from "constructs";
2
+ import { IBucket } from "aws-cdk-lib/aws-s3";
3
+ import { IKey } from "aws-cdk-lib/aws-kms";
4
+ export declare const CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = "orcabus-cross-deployment-codepipeline-artifact";
5
+ export declare const CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = "orcabus-cross-deployment-codepipeline-artifact";
6
+ export declare const CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = "orcabus/deployment-stack-pipeline/artifact-bucket/kms-key-arn";
7
+ export interface ICrossDeploymentArtifactBucket {
8
+ /**
9
+ * The S3 bucket used to store artifacts for cross-deployment pipelines.
10
+ */
11
+ readonly artifactBucket: IBucket;
12
+ /**
13
+ * The KMS key used to encrypt artifacts for cross-deployment pipelines.
14
+ */
15
+ readonly artifactKms: IKey;
16
+ }
17
+ export declare class CrossDeploymentArtifactBucket extends Construct implements ICrossDeploymentArtifactBucket {
18
+ /**
19
+ * The S3 bucket used to store artifacts for cross-deployment pipelines.
20
+ */
21
+ readonly artifactBucket: IBucket;
22
+ /**
23
+ * The KMS key used to encrypt artifacts for cross-deployment pipelines.
24
+ */
25
+ readonly artifactKms: IKey;
26
+ constructor(scope: Construct, id: string);
27
+ /**
28
+ * Imports an existing cross-deployment artifact bucket and its KMS key
29
+ * using SSM and resource lookups.
30
+ * @param scope The scope in which to look up the artifact bucket.
31
+ * @returns ICrossDeploymentArtifactBucket
32
+ */
33
+ static fromLookup(scope: Construct): ICrossDeploymentArtifactBucket;
34
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrossDeploymentArtifactBucket = exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const constructs_1 = require("constructs");
6
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
7
+ const aws_kms_1 = require("aws-cdk-lib/aws-kms");
8
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
9
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
10
+ const config_1 = require("./config");
11
+ const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
12
+ exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = "orcabus-cross-deployment-codepipeline-artifact";
13
+ exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = "orcabus-cross-deployment-codepipeline-artifact";
14
+ exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = "orcabus/deployment-stack-pipeline/artifact-bucket/kms-key-arn";
15
+ class CrossDeploymentArtifactBucket extends constructs_1.Construct {
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.7-beta.5" };
17
+ /**
18
+ * The S3 bucket used to store artifacts for cross-deployment pipelines.
19
+ */
20
+ artifactBucket;
21
+ /**
22
+ * The KMS key used to encrypt artifacts for cross-deployment pipelines.
23
+ */
24
+ artifactKms;
25
+ constructor(scope, id) {
26
+ super(scope, id);
27
+ this.artifactKms = new aws_kms_1.Key(this, "KmsKeyCodepipelineArtifactBucket", {
28
+ pendingWindow: aws_cdk_lib_1.Duration.days(30),
29
+ description: "OrcaBus Cross Deployment Artifact Bucket KMS Key",
30
+ enableKeyRotation: false,
31
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
32
+ alias: exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS,
33
+ });
34
+ new aws_ssm_1.StringParameter(this, "SSMArtifactBucketKmsArnParameter", {
35
+ parameterName: exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME,
36
+ stringValue: this.artifactKms.keyArn,
37
+ description: "KMS Key ARN for the OrcaBus cross-deployment artifact bucket",
38
+ });
39
+ this.artifactBucket = new aws_s3_1.Bucket(this, "BucketCodepipelineCrossArtifact", {
40
+ bucketName: exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME,
41
+ versioned: false,
42
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
43
+ encryption: aws_s3_1.BucketEncryption.KMS,
44
+ encryptionKey: this.artifactKms,
45
+ });
46
+ this.artifactBucket.addToResourcePolicy(new aws_iam_1.PolicyStatement({
47
+ actions: ["s3:GetObject*", "s3:GetBucket*", "s3:List*"],
48
+ resources: [
49
+ this.artifactBucket.bucketArn,
50
+ this.artifactBucket.arnForObjects("*"),
51
+ ],
52
+ principals: [
53
+ new aws_iam_1.ArnPrincipal(`arn:aws:iam::${config_1.BETA_ENVIRONMENT.account}:role/cdk-hnb659fds-deploy-role-${config_1.BETA_ENVIRONMENT.account}-ap-southeast-2`),
54
+ new aws_iam_1.ArnPrincipal(`arn:aws:iam::${config_1.GAMMA_ENVIRONMENT.account}:role/cdk-hnb659fds-deploy-role-${config_1.GAMMA_ENVIRONMENT.account}-ap-southeast-2`),
55
+ new aws_iam_1.ArnPrincipal(`arn:aws:iam::${config_1.PROD_ENVIRONMENT.account}:role/cdk-hnb659fds-deploy-role-${config_1.PROD_ENVIRONMENT.account}-ap-southeast-2`),
56
+ ],
57
+ }));
58
+ }
59
+ /**
60
+ * Imports an existing cross-deployment artifact bucket and its KMS key
61
+ * using SSM and resource lookups.
62
+ * @param scope The scope in which to look up the artifact bucket.
63
+ * @returns ICrossDeploymentArtifactBucket
64
+ */
65
+ static fromLookup(scope) {
66
+ const artifactBucketKmsArn = aws_ssm_1.StringParameter.valueForStringParameter(scope, exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME);
67
+ const artifactBucketKmsKey = aws_kms_1.Key.fromKeyArn(scope, "KmsKeyCodepipelineArtifactBucket", artifactBucketKmsArn);
68
+ const artifactBucket = aws_s3_1.Bucket.fromBucketAttributes(scope, "BucketCodepipelineCrossArtifact", {
69
+ bucketName: exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME,
70
+ encryptionKey: artifactBucketKmsKey,
71
+ });
72
+ return {
73
+ artifactBucket: artifactBucket,
74
+ artifactKms: artifactBucketKmsKey,
75
+ };
76
+ }
77
+ }
78
+ exports.CrossDeploymentArtifactBucket = CrossDeploymentArtifactBucket;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXJ0aWZhY3QtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBdUM7QUFDdkMsK0NBQXVFO0FBQ3ZFLGlEQUFnRDtBQUNoRCw2Q0FBc0Q7QUFDdEQsaURBQW9FO0FBQ3BFLHFDQUlrQjtBQUNsQixpREFBc0Q7QUFFekMsUUFBQSxxQ0FBcUMsR0FDaEQsZ0RBQWdELENBQUM7QUFFdEMsUUFBQSxtQ0FBbUMsR0FDOUMsZ0RBQWdELENBQUM7QUFFdEMsUUFBQSxvREFBb0QsR0FDL0QsK0RBQStELENBQUM7QUFhbEUsTUFBYSw2QkFDWCxTQUFRLHNCQUFTOztJQUdqQjs7T0FFRztJQUNhLGNBQWMsQ0FBVTtJQUN4Qzs7T0FFRztJQUNhLFdBQVcsQ0FBTztJQUVsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxFQUFFO1lBQ25FLGFBQWEsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEMsV0FBVyxFQUFFLGtEQUFrRDtZQUMvRCxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07WUFDbkMsS0FBSyxFQUFFLDJDQUFtQztTQUMzQyxDQUFDLENBQUM7UUFFSCxJQUFJLHlCQUFlLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxFQUFFO1lBQzVELGFBQWEsRUFBRSw0REFBb0Q7WUFDbkUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTtZQUNwQyxXQUFXLEVBQ1QsOERBQThEO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGlDQUFpQyxFQUFFO1lBQ3hFLFVBQVUsRUFBRSw2Q0FBcUM7WUFDakQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsYUFBYSxFQUFFLDJCQUFhLENBQUMsTUFBTTtZQUNuQyxVQUFVLEVBQUUseUJBQWdCLENBQUMsR0FBRztZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDckMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDO1lBQ3ZELFNBQVMsRUFBRTtnQkFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQzthQUN2QztZQUNELFVBQVUsRUFBRTtnQkFDVixJQUFJLHNCQUFZLENBQ2QsZ0JBQWdCLHlCQUFnQixDQUFDLE9BQU8sbUNBQW1DLHlCQUFnQixDQUFDLE9BQU8saUJBQWlCLENBQ3JIO2dCQUNELElBQUksc0JBQVksQ0FDZCxnQkFBZ0IsMEJBQWlCLENBQUMsT0FBTyxtQ0FBbUMsMEJBQWlCLENBQUMsT0FBTyxpQkFBaUIsQ0FDdkg7Z0JBQ0QsSUFBSSxzQkFBWSxDQUNkLGdCQUFnQix5QkFBZ0IsQ0FBQyxPQUFPLG1DQUFtQyx5QkFBZ0IsQ0FBQyxPQUFPLGlCQUFpQixDQUNySDthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWdCO1FBQ3ZDLE1BQU0sb0JBQW9CLEdBQUcseUJBQWUsQ0FBQyx1QkFBdUIsQ0FDbEUsS0FBSyxFQUNMLDREQUFvRCxDQUNyRCxDQUFDO1FBRUYsTUFBTSxvQkFBb0IsR0FBRyxhQUFHLENBQUMsVUFBVSxDQUN6QyxLQUFLLEVBQ0wsa0NBQWtDLEVBQ2xDLG9CQUFvQixDQUNyQixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLG9CQUFvQixDQUNoRCxLQUFLLEVBQ0wsaUNBQWlDLEVBQ2pDO1lBQ0UsVUFBVSxFQUFFLDZDQUFxQztZQUNqRCxhQUFhLEVBQUUsb0JBQW9CO1NBQ3BDLENBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxjQUFjLEVBQUUsY0FBYztZQUM5QixXQUFXLEVBQUUsb0JBQW9CO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQTNGSCxzRUE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQnVja2V0LCBCdWNrZXRFbmNyeXB0aW9uLCBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgSUtleSwgS2V5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIjtcbmltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBcm5QcmluY2lwYWwsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQge1xuICBCRVRBX0VOVklST05NRU5ULFxuICBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgUFJPRF9FTlZJUk9OTUVOVCxcbn0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuXG5leHBvcnQgY29uc3QgQ1JPU1NfREVQTE9ZTUVOVF9BUlRJRkFDVF9CVUNLRVRfTkFNRSA9XG4gIFwib3JjYWJ1cy1jcm9zcy1kZXBsb3ltZW50LWNvZGVwaXBlbGluZS1hcnRpZmFjdFwiO1xuXG5leHBvcnQgY29uc3QgQ1JPU1NfREVQTE9ZTUVOVF9BUlRJRkFDVF9LTVNfQUxJQVMgPVxuICBcIm9yY2FidXMtY3Jvc3MtZGVwbG95bWVudC1jb2RlcGlwZWxpbmUtYXJ0aWZhY3RcIjtcblxuZXhwb3J0IGNvbnN0IENST1NTX0RFUExPWU1FTlRfQVJUSUZBQ1RfS01TX0FSTl9TU01fUEFSQU1FVEVSX05BTUUgPVxuICBcIm9yY2FidXMvZGVwbG95bWVudC1zdGFjay1waXBlbGluZS9hcnRpZmFjdC1idWNrZXQva21zLWtleS1hcm5cIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXQge1xuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB1c2VkIHRvIHN0b3JlIGFydGlmYWN0cyBmb3IgY3Jvc3MtZGVwbG95bWVudCBwaXBlbGluZXMuXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdEJ1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCBhcnRpZmFjdHMgZm9yIGNyb3NzLWRlcGxveW1lbnQgcGlwZWxpbmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RLbXM6IElLZXk7XG59XG5cbmV4cG9ydCBjbGFzcyBDcm9zc0RlcGxveW1lbnRBcnRpZmFjdEJ1Y2tldFxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElDcm9zc0RlcGxveW1lbnRBcnRpZmFjdEJ1Y2tldFxue1xuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB1c2VkIHRvIHN0b3JlIGFydGlmYWN0cyBmb3IgY3Jvc3MtZGVwbG95bWVudCBwaXBlbGluZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RCdWNrZXQ6IElCdWNrZXQ7XG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgYXJ0aWZhY3RzIGZvciBjcm9zcy1kZXBsb3ltZW50IHBpcGVsaW5lcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcnRpZmFjdEttczogSUtleTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYXJ0aWZhY3RLbXMgPSBuZXcgS2V5KHRoaXMsIFwiS21zS2V5Q29kZXBpcGVsaW5lQXJ0aWZhY3RCdWNrZXRcIiwge1xuICAgICAgcGVuZGluZ1dpbmRvdzogRHVyYXRpb24uZGF5cygzMCksXG4gICAgICBkZXNjcmlwdGlvbjogXCJPcmNhQnVzIENyb3NzIERlcGxveW1lbnQgQXJ0aWZhY3QgQnVja2V0IEtNUyBLZXlcIixcbiAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiBmYWxzZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgYWxpYXM6IENST1NTX0RFUExPWU1FTlRfQVJUSUZBQ1RfS01TX0FMSUFTLFxuICAgIH0pO1xuXG4gICAgbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCBcIlNTTUFydGlmYWN0QnVja2V0S21zQXJuUGFyYW1ldGVyXCIsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6IENST1NTX0RFUExPWU1FTlRfQVJUSUZBQ1RfS01TX0FSTl9TU01fUEFSQU1FVEVSX05BTUUsXG4gICAgICBzdHJpbmdWYWx1ZTogdGhpcy5hcnRpZmFjdEttcy5rZXlBcm4sXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJLTVMgS2V5IEFSTiBmb3IgdGhlIE9yY2FCdXMgY3Jvc3MtZGVwbG95bWVudCBhcnRpZmFjdCBidWNrZXRcIixcbiAgICB9KTtcblxuICAgIHRoaXMuYXJ0aWZhY3RCdWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIFwiQnVja2V0Q29kZXBpcGVsaW5lQ3Jvc3NBcnRpZmFjdFwiLCB7XG4gICAgICBidWNrZXROYW1lOiBDUk9TU19ERVBMT1lNRU5UX0FSVElGQUNUX0JVQ0tFVF9OQU1FLFxuICAgICAgdmVyc2lvbmVkOiBmYWxzZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICBlbmNyeXB0aW9uS2V5OiB0aGlzLmFydGlmYWN0S21zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcnRpZmFjdEJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInMzOkdldE9iamVjdCpcIiwgXCJzMzpHZXRCdWNrZXQqXCIsIFwiczM6TGlzdCpcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIHRoaXMuYXJ0aWZhY3RCdWNrZXQuYnVja2V0QXJuLFxuICAgICAgICAgIHRoaXMuYXJ0aWZhY3RCdWNrZXQuYXJuRm9yT2JqZWN0cyhcIipcIiksXG4gICAgICAgIF0sXG4gICAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgICBuZXcgQXJuUHJpbmNpcGFsKFxuICAgICAgICAgICAgYGFybjphd3M6aWFtOjoke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWRlcGxveS1yb2xlLSR7QkVUQV9FTlZJUk9OTUVOVC5hY2NvdW50fS1hcC1zb3V0aGVhc3QtMmAsXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuZXcgQXJuUHJpbmNpcGFsKFxuICAgICAgICAgICAgYGFybjphd3M6aWFtOjoke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9OnJvbGUvY2RrLWhuYjY1OWZkcy1kZXBsb3ktcm9sZS0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgICAgICAgICApLFxuICAgICAgICAgIG5ldyBBcm5QcmluY2lwYWwoXG4gICAgICAgICAgICBgYXJuOmF3czppYW06OiR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fTpyb2xlL2Nkay1obmI2NTlmZHMtZGVwbG95LXJvbGUtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIGV4aXN0aW5nIGNyb3NzLWRlcGxveW1lbnQgYXJ0aWZhY3QgYnVja2V0IGFuZCBpdHMgS01TIGtleVxuICAgKiB1c2luZyBTU00gYW5kIHJlc291cmNlIGxvb2t1cHMuXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gbG9vayB1cCB0aGUgYXJ0aWZhY3QgYnVja2V0LlxuICAgKiBAcmV0dXJucyBJQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxvb2t1cChzY29wZTogQ29uc3RydWN0KTogSUNyb3NzRGVwbG95bWVudEFydGlmYWN0QnVja2V0IHtcbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldEttc0FybiA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcihcbiAgICAgIHNjb3BlLFxuICAgICAgQ1JPU1NfREVQTE9ZTUVOVF9BUlRJRkFDVF9LTVNfQVJOX1NTTV9QQVJBTUVURVJfTkFNRSxcbiAgICApO1xuXG4gICAgY29uc3QgYXJ0aWZhY3RCdWNrZXRLbXNLZXkgPSBLZXkuZnJvbUtleUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgXCJLbXNLZXlDb2RlcGlwZWxpbmVBcnRpZmFjdEJ1Y2tldFwiLFxuICAgICAgYXJ0aWZhY3RCdWNrZXRLbXNBcm4sXG4gICAgKTtcbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldCA9IEJ1Y2tldC5mcm9tQnVja2V0QXR0cmlidXRlcyhcbiAgICAgIHNjb3BlLFxuICAgICAgXCJCdWNrZXRDb2RlcGlwZWxpbmVDcm9zc0FydGlmYWN0XCIsXG4gICAgICB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IENST1NTX0RFUExPWU1FTlRfQVJUSUZBQ1RfQlVDS0VUX05BTUUsXG4gICAgICAgIGVuY3J5cHRpb25LZXk6IGFydGlmYWN0QnVja2V0S21zS2V5LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFydGlmYWN0QnVja2V0OiBhcnRpZmFjdEJ1Y2tldCxcbiAgICAgIGFydGlmYWN0S21zOiBhcnRpZmFjdEJ1Y2tldEttc0tleSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,2 +1,3 @@
1
1
  export * from "./config";
2
2
  export * from "./pipeline";
3
+ export * from "./artifact-bucket";
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
18
  __exportStar(require("./pipeline"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGlwZWxpbmVcIjtcbiJdfQ==
19
+ __exportStar(require("./artifact-bucket"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQixvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BpcGVsaW5lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcnRpZmFjdC1idWNrZXRcIjtcbiJdfQ==
@@ -43,7 +43,10 @@ export interface StackConfigProps {
43
43
  }
44
44
  export interface DeploymentStackPipelineProps {
45
45
  /**
46
- * The github branch name it will listen to.
46
+ * The GitHub branch name the pipeline will listen to.
47
+ * Avoid using branch names that contain special characters such as parentheses.
48
+ * Allowed special characters are: "+ - = . _ : / @".
49
+ * This restriction is due to AWS resource tagging requirements.
47
50
  */
48
51
  readonly githubBranch: string;
49
52
  /**
@@ -107,7 +110,20 @@ export interface DeploymentStackPipelineProps {
107
110
  * Only failed pipeline executions will trigger a notification.
108
111
  */
109
112
  readonly notificationEvents?: PipelineNotificationEvents[];
113
+ /**
114
+ * Whether to reuse the existing artifact bucket for cross-deployment pipelines.
115
+ * If set to true, it will look up the existing artifact bucket in the TOOLCHAIN account.
116
+ *
117
+ * @default True
118
+ */
119
+ readonly reuseExistingArtifactBucket?: boolean;
110
120
  }
121
+ /**
122
+ * A CDK construct that creates a deployment pipeline across environments for the OrcaBus project.
123
+ *
124
+ * Prerequisite: Ensure that the "CrossDeploymentArtifactBucket" stack is deployed in the TOOLCHAIN account
125
+ * before using this construct.
126
+ */
111
127
  export declare class DeploymentStackPipeline extends Construct {
112
128
  /**
113
129
  * The code pipeline construct that is created.
@@ -23,8 +23,14 @@ exports.DEFAULT_SYNTH_STEP_PARTIAL_BUILD_SPEC = {
23
23
  },
24
24
  },
25
25
  };
26
+ /**
27
+ * A CDK construct that creates a deployment pipeline across environments for the OrcaBus project.
28
+ *
29
+ * Prerequisite: Ensure that the "CrossDeploymentArtifactBucket" stack is deployed in the TOOLCHAIN account
30
+ * before using this construct.
31
+ */
26
32
  class DeploymentStackPipeline extends constructs_1.Construct {
27
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.7-beta.4" };
33
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.7-beta.5" };
28
34
  /**
29
35
  * The code pipeline construct that is created.
30
36
  */
@@ -38,7 +44,13 @@ class DeploymentStackPipeline extends constructs_1.Construct {
38
44
  actionName: codeStarSourceActionName,
39
45
  triggerOnPush: true,
40
46
  });
47
+ // Disable temporary artifact bucket lookup until is deployed in the TOOLCHAIN account
48
+ // const artifactBucket = props.reuseExistingArtifactBucket
49
+ // ? CrossDeploymentArtifactBucket.fromLookup(this).artifactBucket
50
+ // : undefined;
51
+ const artifactBucket = undefined;
41
52
  this.pipeline = new aws_codepipeline_1.Pipeline(this, "DeploymentCodePipeline", {
53
+ artifactBucket: artifactBucket,
42
54
  pipelineType: aws_codepipeline_1.PipelineType.V2,
43
55
  pipelineName: props.pipelineName,
44
56
  crossAccountKeys: true,
@@ -135,4 +147,4 @@ class DeploymentStage extends aws_cdk_lib_1.Stage {
135
147
  });
136
148
  }
137
149
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF3RDtBQUN4RCw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFLc0M7QUFDdEMscUNBSWtCO0FBQ2xCLHlEQUFvRTtBQUNwRSxxRkFBbUU7QUFFbkU7O0dBRUc7QUFDVSxRQUFBLHFDQUFxQyxHQUFHO0lBQ25ELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFO2dCQUNsQixNQUFNLEVBQUUsTUFBTTthQUNmO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFvR0YsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDcEQ7O09BRUc7SUFDTSxRQUFRLENBQVc7SUFFNUIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFdBQVcsR0FBRyx5QkFBZSxDQUFDLHVCQUF1QixDQUN6RCxJQUFJLEVBQ0osOEJBQThCLENBQy9CLENBQUM7UUFDRixNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQzlDLFdBQVcsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUM3QixLQUFLLENBQUMsWUFBWSxFQUNsQjtZQUNFLGFBQWEsRUFBRSxXQUFXO1lBQzFCLFVBQVUsRUFBRSx3QkFBd0I7WUFDcEMsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQzNELFlBQVksRUFBRSwrQkFBWSxDQUFDLEVBQUU7WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGdC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QU0sU0FBUyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM5QixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRTtnQkFDSixtQkFBbUIsRUFBRSxTQUFTO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixtQkFBbUIsRUFBRSxTQUFTO2dCQUM5QixrQkFBa0IsRUFBRSxNQUFNO2FBQzNCO1lBQ0QsR0FBRyxhQUFhO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWdlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBMaW51eEFybUJ1aWxkSW1hZ2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHtcbiAgQ29kZUJ1aWxkU3RlcCxcbiAgQ29kZVBpcGVsaW5lLFxuICBDb2RlUGlwZWxpbmVTb3VyY2UsXG4gIE1hbnVhbEFwcHJvdmFsU3RlcCxcbn0gZnJvbSBcImF3cy1jZGstbGliL3BpcGVsaW5lc1wiO1xuaW1wb3J0IHtcbiAgUGlwZWxpbmUsXG4gIENmblBpcGVsaW5lLFxuICBQaXBlbGluZVR5cGUsXG4gIFBpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHtcbiAgQkVUQV9FTlZJUk9OTUVOVCxcbiAgR0FNTUFfRU5WSVJPTk1FTlQsXG4gIFBST0RfRU5WSVJPTk1FTlQsXG59IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2hhdGJvdFwiO1xuaW1wb3J0IHsgRGV0YWlsVHlwZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXN0YXJub3RpZmljYXRpb25zXCI7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFydGlhbCBidWlsZCBzcGVjIGZvciB0aGUgc3ludGggc3RlcCBpbiB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDID0ge1xuICBwaGFzZXM6IHtcbiAgICBpbnN0YWxsOiB7XG4gICAgICBcInJ1bnRpbWUtdmVyc2lvbnNcIjoge1xuICAgICAgICBub2RlanM6IFwiMjIueFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUVudlByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIGJldGEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGJldGE6IEVudmlyb25tZW50O1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgZ2FtbWEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGdhbW1hOiBFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBiZXRhIChkZXYpIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBiZXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnYW1tYSAoc3RnKSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtbWE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2l0aHViIGJyYW5jaCBuYW1lIGl0IHdpbGwgbGlzdGVuIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViQnJhbmNoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSBuYW1lIHRoYXQgZXhpc3QgaW4gdGhlICdPcmNhQnVzJyBnaXRodWIgb3JnYW5pc2F0aW9uLiBlLmcuIGBhLW1pY3JvLXNlcnZpY2UtcmVwb2BcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YlJlcG86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0byB3aGljaCB0aGUgcGlwZWxpbmUgd2lsbCBiZSBkZXBsb3lpbmcgdG8gaXRzIHJlc3BlY3RpdmUgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBuYW1lIChpbiBjbG91ZGZvcm1hdGlvbikgZm9yIHRoZSBzdGFjayBkZWZpbmVkIGluIGBzdGFja2AuIFRoZSBzdGFjayBuYW1lIHdpbGwgcHJlcGVuZCB3aXRoIHRoZSBzdGFnZVxuICAgKiBuYW1lIGUuZy4gYE9yY2FCdXNCZXRhLTxzdGFja05hbWU+YCwgYE9yY2FCdXNHYW1tYS08c3RhY2tOYW1lPmAsIGBPcmNhQnVzUHJvZC08c3RhY2tOYW1lPmBcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YWNrIGNvbmZpZ3VyYXRpb24vY29uc3RhbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHN0YWNrIHByb3BzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tDb25maWc6IFN0YWNrQ29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgcGlwZWxpbmUgbmFtZSBpbiB0aGUgYmFzdGlvbiBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBwYXRocyB0byB0cmlnZ2VyIHRoZSBwaXBlbGluZS4gZS5nLiBbXCJzdGF0ZWxlc3MvKipcIl1cbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtY29kZXBpcGVsaW5lLXBpcGVsaW5lLWdpdGZpbGVwYXRoZmlsdGVyY3JpdGVyaWEuaHRtbFxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZVBhdGhzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB0byBydW4gdG8gc3ludGggdGhlIGNkayBzdGFjayB3aGljaCBhbHNvIGluc3RhbGxpbmcgdGhlIGNkayBkZXBlbmRlbmNpZXMuIGUuZy4gW1wieWFybiBpbnN0YWxsIC0taW1tdXRhYmxlXCIsIFwieWFybiBjZGsgc3ludGhcIl1cbiAgICovXG4gIHJlYWRvbmx5IGNka1N5bnRoQ21kOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgY2RrIG91dHB1dCB3aWxsIGJlIHN0b3JlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgY2RrLm91dFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrT3V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgQ29kZUJ1aWxkIHN0ZXAgZHVyaW5nIHRoZSBDREsgc3ludGggcGhhc2UuIEl0IHdpbGwgcGFzc2VkIGFzIHRoZSBgcGFydGlhbEJ1aWxkU3BlY2AgdG8gdGhlIGBDb2RlQnVpbGRTdGVwYC5cbiAgICpcbiAgICogQGRlZmF1bHQgREVGQVVMVF9TWU5USF9TVEVQX1BBUlRJQUxfQlVJTERfU1BFQ1xuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhCdWlsZFNwZWM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIHN0YWdlIGVudmlyb25tZW50IGZvciB0aGUgZGVwbG95bWVudCBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VFbnY/OiBTdGFnZUVudlByb3BzO1xuICAvKipcbiAgICogRW5hYmxlIG5vdGlmaWNhdGlvbiB0byB0aGUgJ2FsZXJ0cy1idWlsZCcgc2xhY2sgY2hhbm5lbC5cbiAgICogQGRlZmF1bHQgVHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlU2xhY2tOb3RpZmljYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHBpcGVsaW5lIG5vdGlmaWNhdGlvbiBldmVudHMgdGhhdCB3aWxsIHRyaWdnZXIgYSBTbGFjayBjaGFubmVsIG5vdGlmaWNhdGlvbi5cbiAgICogT25seSBhcHBsaWVzIGlmIGBlbmFibGVTbGFja05vdGlmaWNhdGlvbmAgaXMgc2V0IHRvIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtQaXBlbGluZU5vdGlmaWNhdGlvbkV2ZW50cy5QSVBFTElORV9FWEVDVVRJT05fRkFJTEVEXSDigJNcbiAgICogICBPbmx5IGZhaWxlZCBwaXBlbGluZSBleGVjdXRpb25zIHdpbGwgdHJpZ2dlciBhIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkV2ZW50cz86IFBpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzW107XG59XG5cbmV4cG9ydCBjbGFzcyBEZXBsb3ltZW50U3RhY2tQaXBlbGluZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgY29kZSBwaXBlbGluZSBjb25zdHJ1Y3QgdGhhdCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmU6IFBpcGVsaW5lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNvZGVTdGFyQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgdGhpcyxcbiAgICAgIFwiL29yY2FidXMvY29kZXN0YXJfZ2l0aHViX2FyblwiLFxuICAgICk7XG4gICAgY29uc3QgY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lID0gXCJwaXBlbGluZS1zcmNcIjtcbiAgICBjb25zdCBzb3VyY2VGaWxlID0gQ29kZVBpcGVsaW5lU291cmNlLmNvbm5lY3Rpb24oXG4gICAgICBgT3JjYUJ1cy8ke3Byb3BzLmdpdGh1YlJlcG99YCxcbiAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdGlvbkFybjogY29kZVN0YXJBcm4sXG4gICAgICAgIGFjdGlvbk5hbWU6IGNvZGVTdGFyU291cmNlQWN0aW9uTmFtZSxcbiAgICAgICAgdHJpZ2dlck9uUHVzaDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUodGhpcywgXCJEZXBsb3ltZW50Q29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlLlYyLFxuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICBjcm9zc0FjY291bnRLZXlzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmZpbGVQYXRocykge1xuICAgICAgLy8gQWRkIGV2ZW50IGZpbHRlciB0byBvbmx5IHRyaWdnZXIgaWYgdGhlIHB1c2ggZXZlbnQgaXMgZnJvbSBgZGVwbG95YCBkaXJlY3RvcnlcbiAgICAgIGNvbnN0IGNmblBpcGVsaW5lID0gdGhpcy5waXBlbGluZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5QaXBlbGluZTtcbiAgICAgIGNmblBpcGVsaW5lLmFkZFByb3BlcnR5T3ZlcnJpZGUoXCJUcmlnZ2Vyc1wiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBHaXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICBQdXNoOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBCcmFuY2hlczoge1xuICAgICAgICAgICAgICAgICAgSW5jbHVkZXM6IFtwcm9wcy5naXRodWJCcmFuY2hdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgRmlsZVBhdGhzOiB7XG4gICAgICAgICAgICAgICAgICBJbmNsdWRlczogcHJvcHMuZmlsZVBhdGhzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgU291cmNlQWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiBcIkNvZGVTdGFyU291cmNlQ29ubmVjdGlvblwiLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzeW50aEJ1aWxkU3BlYyA9IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNka1BpcGVsaW5lID0gbmV3IENvZGVQaXBlbGluZSh0aGlzLCBcIkNES0NvZGVQaXBlbGluZVwiLCB7XG4gICAgICBjb2RlUGlwZWxpbmU6IHRoaXMucGlwZWxpbmUsXG4gICAgICBzeW50aDogbmV3IENvZGVCdWlsZFN0ZXAoXCJDZGtTeW50aFwiLCB7XG4gICAgICAgIGluc3RhbGxDb21tYW5kczogW1xuICAgICAgICAgIFwibm9kZSAtdlwiLFxuICAgICAgICAgIFwibnBtIGluc3RhbGwgLS1nbG9iYWwgY29yZXBhY2tAbGF0ZXN0XCIsXG4gICAgICAgICAgXCJjb3JlcGFjayAtLXZlcnNpb25cIixcbiAgICAgICAgICBcImNvcmVwYWNrIGVuYWJsZVwiLFxuICAgICAgICBdLFxuICAgICAgICBjb21tYW5kczogcHJvcHMuY2RrU3ludGhDbWQsXG4gICAgICAgIGlucHV0OiBzb3VyY2VGaWxlLFxuICAgICAgICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBwcm9wcy5jZGtPdXQgfHwgXCJjZGsub3V0XCIsXG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHN5bnRoQnVpbGRTcGVjKSxcbiAgICAgIH0pLFxuICAgICAgc2VsZk11dGF0aW9uOiB0cnVlLFxuICAgICAgY29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNvbXB1dGVUeXBlOiBDb21wdXRlVHlwZS5MQVJHRSxcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEFybUJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfU1RBTkRBUkRfM18wLFxuICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgICAgICBOT0RFX09QVElPTlM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiLS1tYXgtb2xkLXNwYWNlLXNpemU9ODE5MlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRTdGFnZUVudjogU3RhZ2VFbnZQcm9wcyA9IHtcbiAgICAgIGJldGE6IEJFVEFfRU5WSVJPTk1FTlQsXG4gICAgICBnYW1tYTogR0FNTUFfRU5WSVJPTk1FTlQsXG4gICAgICBwcm9kOiBQUk9EX0VOVklST05NRU5ULFxuICAgIH07XG4gICAgY29uc3Qgc3RhZ2VFbnYgPSBwcm9wcy5zdGFnZUVudiB8fCBkZWZhdWx0U3RhZ2VFbnY7XG5cbiAgICBjZGtQaXBlbGluZS5hZGRTdGFnZShcbiAgICAgIG5ldyBEZXBsb3ltZW50U3RhZ2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiT3JjYUJ1c0JldGFcIixcbiAgICAgICAgc3RhZ2VFbnYuYmV0YSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuYmV0YSxcbiAgICAgICAgcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNHYW1tYVwiLFxuICAgICAgICBzdGFnZUVudi5nYW1tYSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuZ2FtbWEsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgICB7IHBvc3Q6IFtuZXcgTWFudWFsQXBwcm92YWxTdGVwKFwiUHJvbW90ZVRvUHJvZFwiKV0gfSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNQcm9kXCIsXG4gICAgICAgIHN0YWdlRW52LnByb2QsXG4gICAgICAgIHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgcHJvcHMuc3RhY2ssXG4gICAgICAgIHByb3BzLnN0YWNrQ29uZmlnLnByb2QsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVTbGFja05vdGlmaWNhdGlvbiA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBhbGVydHNCdWlsZFNsYWNrQ29uZmlnQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi9jaGF0Ym90X2Fybi9zbGFjay9hbGVydHMtYnVpbGRcIixcbiAgICAgICk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLmZyb21TbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIlNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgYWxlcnRzQnVpbGRTbGFja0NvbmZpZ0FybixcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGlwZWxpbmUubm90aWZ5T24oXCJQaXBlbGluZVNsYWNrTm90aWZpY2F0aW9uXCIsIHRhcmdldCwge1xuICAgICAgICBldmVudHM6IHByb3BzLm5vdGlmaWNhdGlvbkV2ZW50cyB8fCBbXG4gICAgICAgICAgUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMuUElQRUxJTkVfRVhFQ1VUSU9OX0ZBSUxFRCxcbiAgICAgICAgXSxcbiAgICAgICAgZGV0YWlsVHlwZTogRGV0YWlsVHlwZS5GVUxMLFxuICAgICAgICBub3RpZmljYXRpb25SdWxlTmFtZTogYE9yY2FCdXMtJHtwcm9wcy5waXBlbGluZU5hbWV9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBEZXBsb3ltZW50U3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgZW52aXJvbm1lbnROYW1lOiBzdHJpbmcsXG4gICAgZW52OiBFbnZpcm9ubWVudCxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICBzdGFja0NsYXNzOiBuZXcgKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBhbnkpID0+IFN0YWNrLFxuICAgIGFwcFN0YWNrUHJvcHM6IGFueSxcbiAgICBnaXRodWJSZXBvOiBzdHJpbmcsXG4gICAgZ2l0aHViQnJhbmNoPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgZW52aXJvbm1lbnROYW1lLCB7IGVudjogZW52IH0pO1xuXG4gICAgbGV0IHNvdXJjZSA9IGBodHRwczovL2dpdGh1Yi5jb20vT3JjYUJ1cy8ke2dpdGh1YlJlcG99YDtcbiAgICBpZiAoZ2l0aHViQnJhbmNoICE9PSB1bmRlZmluZWQgJiYgZ2l0aHViQnJhbmNoICE9PSBcIm1haW5cIikge1xuICAgICAgc291cmNlID0gYCR7c291cmNlfS90cmVlLyR7Z2l0aHViQnJhbmNofWA7XG4gICAgfVxuXG4gICAgbmV3IHN0YWNrQ2xhc3ModGhpcywgc3RhY2tOYW1lLCB7XG4gICAgICBlbnY6IGVudixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgXCJ1bWNjci1vcmc6UHJvZHVjdFwiOiBcIk9yY2FCdXNcIixcbiAgICAgICAgXCJ1bWNjci1vcmc6Q3JlYXRvclwiOiBcIkNES1wiLFxuICAgICAgICBcInVtY2NyLW9yZzpTZXJ2aWNlXCI6IHN0YWNrTmFtZSxcbiAgICAgICAgXCJ1bWNjci1vcmc6U291cmNlXCI6IHNvdXJjZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcHBTdGFja1Byb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF1RTtBQUN2RSw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFLc0M7QUFDdEMscUNBSWtCO0FBQ2xCLHlEQUFvRTtBQUNwRSxxRkFBbUU7QUFHbkU7O0dBRUc7QUFDVSxRQUFBLHFDQUFxQyxHQUFHO0lBQ25ELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFO2dCQUNsQixNQUFNLEVBQUUsTUFBTTthQUNmO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUErR0Y7Ozs7O0dBS0c7QUFDSCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTOztJQUNwRDs7T0FFRztJQUNNLFFBQVEsQ0FBVztJQUU1QixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQztRQUVuQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLHlCQUFlLENBQUMsdUJBQXVCLENBQ3pELElBQUksRUFDSiw4QkFBOEIsQ0FDL0IsQ0FBQztRQUNGLE1BQU0sd0JBQXdCLEdBQUcsY0FBYyxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLDhCQUFrQixDQUFDLFVBQVUsQ0FDOUMsV0FBVyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQzdCLEtBQUssQ0FBQyxZQUFZLEVBQ2xCO1lBQ0UsYUFBYSxFQUFFLFdBQVc7WUFDMUIsVUFBVSxFQUFFLHdCQUF3QjtZQUNwQyxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUNGLENBQUM7UUFFRixzRkFBc0Y7UUFDdEYsMkRBQTJEO1FBQzNELG9FQUFvRTtRQUNwRSxpQkFBaUI7UUFDakIsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSwyQkFBUSxD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QyxJQUFJLE1BQU0sR0FBRyw4QkFBOEIsVUFBVSxFQUFFLENBQUM7UUFDeEQsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsWUFBWSxFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDOUIsR0FBRyxFQUFFLEdBQUc7WUFDUixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsU0FBUztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsbUJBQW1CLEVBQUUsU0FBUztnQkFDOUIsa0JBQWtCLEVBQUUsTUFBTTthQUMzQjtZQUNELEdBQUcsYUFBYTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIFJlbW92YWxQb2xpY3ksIFN0YWNrLCBTdGFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQnVpbGRTcGVjLFxuICBDb21wdXRlVHlwZSxcbiAgTGludXhBcm1CdWlsZEltYWdlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7XG4gIENvZGVCdWlsZFN0ZXAsXG4gIENvZGVQaXBlbGluZSxcbiAgQ29kZVBpcGVsaW5lU291cmNlLFxuICBNYW51YWxBcHByb3ZhbFN0ZXAsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9waXBlbGluZXNcIjtcbmltcG9ydCB7XG4gIFBpcGVsaW5lLFxuICBDZm5QaXBlbGluZSxcbiAgUGlwZWxpbmVUeXBlLFxuICBQaXBlbGluZU5vdGlmaWNhdGlvbkV2ZW50cyxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7XG4gIEJFVEFfRU5WSVJPTk1FTlQsXG4gIEdBTU1BX0VOVklST05NRU5ULFxuICBQUk9EX0VOVklST05NRU5ULFxufSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IFNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNoYXRib3RcIjtcbmltcG9ydCB7IERldGFpbFR5cGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVzdGFybm90aWZpY2F0aW9uc1wiO1xuaW1wb3J0IHsgQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXQgfSBmcm9tIFwiLi9hcnRpZmFjdC1idWNrZXRcIjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBwYXJ0aWFsIGJ1aWxkIHNwZWMgZm9yIHRoZSBzeW50aCBzdGVwIGluIHRoZSBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUMgPSB7XG4gIHBoYXNlczoge1xuICAgIGluc3RhbGw6IHtcbiAgICAgIFwicnVudGltZS12ZXJzaW9uc1wiOiB7XG4gICAgICAgIG5vZGVqczogXCIyMi54XCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlRW52UHJvcHMge1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgYmV0YSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgYmV0YTogRW52aXJvbm1lbnQ7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgZm9yIHRoZSBnYW1tYSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtbWE6IEVudmlyb25tZW50O1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgcHJvZCBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogRW52aXJvbm1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJldGEgKGRldikgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGJldGE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdhbW1hIChzdGcpIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBnYW1tYTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvZCBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50U3RhY2tQaXBlbGluZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgYnJhbmNoIG5hbWUgdGhlIHBpcGVsaW5lIHdpbGwgbGlzdGVuIHRvLlxuICAgKiBBdm9pZCB1c2luZyBicmFuY2ggbmFtZXMgdGhhdCBjb250YWluIHNwZWNpYWwgY2hhcmFjdGVycyBzdWNoIGFzIHBhcmVudGhlc2VzLlxuICAgKiBBbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycyBhcmU6IFwiKyAtID0gLiBfIDogLyBAXCIuXG4gICAqIFRoaXMgcmVzdHJpY3Rpb24gaXMgZHVlIHRvIEFXUyByZXNvdXJjZSB0YWdnaW5nIHJlcXVpcmVtZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YkJyYW5jaDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgbmFtZSB0aGF0IGV4aXN0IGluIHRoZSAnT3JjYUJ1cycgZ2l0aHViIG9yZ2FuaXNhdGlvbi4gZS5nLiBgYS1taWNyby1zZXJ2aWNlLXJlcG9gXG4gICAqL1xuICByZWFkb25seSBnaXRodWJSZXBvOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gd2hpY2ggdGhlIHBpcGVsaW5lIHdpbGwgYmUgZGVwbG95aW5nIHRvIGl0cyByZXNwZWN0aXZlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgbmFtZSAoaW4gY2xvdWRmb3JtYXRpb24pIGZvciB0aGUgc3RhY2sgZGVmaW5lZCBpbiBgc3RhY2tgLiBUaGUgc3RhY2sgbmFtZSB3aWxsIHByZXBlbmQgd2l0aCB0aGUgc3RhZ2VcbiAgICogbmFtZSBlLmcuIGBPcmNhQnVzQmV0YS08c3RhY2tOYW1lPmAsIGBPcmNhQnVzR2FtbWEtPHN0YWNrTmFtZT5gLCBgT3JjYUJ1c1Byb2QtPHN0YWNrTmFtZT5gXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBjb25maWd1cmF0aW9uL2NvbnN0YW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzdGFjayBwcm9wcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrQ29uZmlnOiBTdGFja0NvbmZpZ1Byb3BzO1xuICAvKipcbiAgICogVGhlIHBpcGVsaW5lIG5hbWUgaW4gdGhlIGJhc3Rpb24gYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZpbGUgcGF0aHMgdG8gdHJpZ2dlciB0aGUgcGlwZWxpbmUuIGUuZy4gW1wic3RhdGVsZXNzLyoqXCJdXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWNvZGVwaXBlbGluZS1waXBlbGluZS1naXRmaWxlcGF0aGZpbHRlcmNyaXRlcmlhLmh0bWxcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRocz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdG8gcnVuIHRvIHN5bnRoIHRoZSBjZGsgc3RhY2sgd2hpY2ggYWxzbyBpbnN0YWxsaW5nIHRoZSBjZGsgZGVwZW5kZW5jaWVzLiBlLmcuIFtcInlhcm4gaW5zdGFsbCAtLWltbXV0YWJsZVwiLCBcInlhcm4gY2RrIHN5bnRoXCJdXG4gICAqL1xuICByZWFkb25seSBjZGtTeW50aENtZDogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gd2hlcmUgdGhlIGNkayBvdXRwdXQgd2lsbCBiZSBzdG9yZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGNkay5vdXRcbiAgICovXG4gIHJlYWRvbmx5IGNka091dD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvZGVCdWlsZCBzdGVwIGR1cmluZyB0aGUgQ0RLIHN5bnRoIHBoYXNlLiBJdCB3aWxsIHBhc3NlZCBhcyB0aGUgYHBhcnRpYWxCdWlsZFNwZWNgIHRvIHRoZSBgQ29kZUJ1aWxkU3RlcGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUNcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoQnVpbGRTcGVjPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRoZSBzdGFnZSBlbnZpcm9ubWVudCBmb3IgdGhlIGRlcGxveW1lbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlRW52PzogU3RhZ2VFbnZQcm9wcztcbiAgLyoqXG4gICAqIEVuYWJsZSBub3RpZmljYXRpb24gdG8gdGhlICdhbGVydHMtYnVpbGQnIHNsYWNrIGNoYW5uZWwuXG4gICAqIEBkZWZhdWx0IFRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNsYWNrTm90aWZpY2F0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBwaXBlbGluZSBub3RpZmljYXRpb24gZXZlbnRzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgU2xhY2sgY2hhbm5lbCBub3RpZmljYXRpb24uXG4gICAqIE9ubHkgYXBwbGllcyBpZiBgZW5hYmxlU2xhY2tOb3RpZmljYXRpb25gIGlzIHNldCB0byB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMuUElQRUxJTkVfRVhFQ1VUSU9OX0ZBSUxFRF0g4oCTXG4gICAqICAgT25seSBmYWlsZWQgcGlwZWxpbmUgZXhlY3V0aW9ucyB3aWxsIHRyaWdnZXIgYSBub3RpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25FdmVudHM/OiBQaXBlbGluZU5vdGlmaWNhdGlvbkV2ZW50c1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJldXNlIHRoZSBleGlzdGluZyBhcnRpZmFjdCBidWNrZXQgZm9yIGNyb3NzLWRlcGxveW1lbnQgcGlwZWxpbmVzLlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgaXQgd2lsbCBsb29rIHVwIHRoZSBleGlzdGluZyBhcnRpZmFjdCBidWNrZXQgaW4gdGhlIFRPT0xDSEFJTiBhY2NvdW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBUcnVlXG4gICAqL1xuICByZWFkb25seSByZXVzZUV4aXN0aW5nQXJ0aWZhY3RCdWNrZXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgQ0RLIGNvbnN0cnVjdCB0aGF0IGNyZWF0ZXMgYSBkZXBsb3ltZW50IHBpcGVsaW5lIGFjcm9zcyBlbnZpcm9ubWVudHMgZm9yIHRoZSBPcmNhQnVzIHByb2plY3QuXG4gKlxuICogUHJlcmVxdWlzaXRlOiBFbnN1cmUgdGhhdCB0aGUgXCJDcm9zc0RlcGxveW1lbnRBcnRpZmFjdEJ1Y2tldFwiIHN0YWNrIGlzIGRlcGxveWVkIGluIHRoZSBUT09MQ0hBSU4gYWNjb3VudFxuICogYmVmb3JlIHVzaW5nIHRoaXMgY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudFN0YWNrUGlwZWxpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIGNvZGUgcGlwZWxpbmUgY29uc3RydWN0IHRoYXQgaXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lOiBQaXBlbGluZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IERlcGxveW1lbnRTdGFja1BpcGVsaW5lUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjb2RlU3RhckFybiA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcihcbiAgICAgIHRoaXMsXG4gICAgICBcIi9vcmNhYnVzL2NvZGVzdGFyX2dpdGh1Yl9hcm5cIixcbiAgICApO1xuICAgIGNvbnN0IGNvZGVTdGFyU291cmNlQWN0aW9uTmFtZSA9IFwicGlwZWxpbmUtc3JjXCI7XG4gICAgY29uc3Qgc291cmNlRmlsZSA9IENvZGVQaXBlbGluZVNvdXJjZS5jb25uZWN0aW9uKFxuICAgICAgYE9yY2FCdXMvJHtwcm9wcy5naXRodWJSZXBvfWAsXG4gICAgICBwcm9wcy5naXRodWJCcmFuY2gsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3Rpb25Bcm46IGNvZGVTdGFyQXJuLFxuICAgICAgICBhY3Rpb25OYW1lOiBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUsXG4gICAgICAgIHRyaWdnZXJPblB1c2g6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBEaXNhYmxlIHRlbXBvcmFyeSBhcnRpZmFjdCBidWNrZXQgbG9va3VwIHVudGlsIGlzIGRlcGxveWVkIGluIHRoZSBUT09MQ0hBSU4gYWNjb3VudFxuICAgIC8vIGNvbnN0IGFydGlmYWN0QnVja2V0ID0gcHJvcHMucmV1c2VFeGlzdGluZ0FydGlmYWN0QnVja2V0XG4gICAgLy8gICA/IENyb3NzRGVwbG95bWVudEFydGlmYWN0QnVja2V0LmZyb21Mb29rdXAodGhpcykuYXJ0aWZhY3RCdWNrZXRcbiAgICAvLyAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFydGlmYWN0QnVja2V0ID0gdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCBcIkRlcGxveW1lbnRDb2RlUGlwZWxpbmVcIiwge1xuICAgICAgYXJ0aWZhY3RCdWNrZXQ6IGFydGlmYWN0QnVja2V0LFxuICAgICAgcGlwZWxpbmVUeXBlOiBQaXBlbGluZVR5cGUuVjIsXG4gICAgICBwaXBlbGluZU5hbWU6IHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgIGNyb3NzQWNjb3VudEtleXM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZmlsZVBhdGhzKSB7XG4gICAgICAvLyBBZGQgZXZlbnQgZmlsdGVyIHRvIG9ubHkgdHJpZ2dlciBpZiB0aGUgcHVzaCBldmVudCBpcyBmcm9tIGBkZXBsb3lgIGRpcmVjdG9yeVxuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lLm5vZGUuZGVmYXVsdENoaWxkIGFzIENmblBpcGVsaW5lO1xuICAgICAgY2ZuUGlwZWxpbmUuYWRkUHJvcGVydHlPdmVycmlkZShcIlRyaWdnZXJzXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIEdpdENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIFB1c2g6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEJyYW5jaGVzOiB7XG4gICAgICAgICAgICAgICAgICBJbmNsdWRlczogW3Byb3BzLmdpdGh1YkJyYW5jaF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBGaWxlUGF0aHM6IHtcbiAgICAgICAgICAgICAgICAgIEluY2x1ZGVzOiBwcm9wcy5maWxlUGF0aHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBTb3VyY2VBY3Rpb25OYW1lOiBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBQcm92aWRlclR5cGU6IFwiQ29kZVN0YXJTb3VyY2VDb25uZWN0aW9uXCIsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHN5bnRoQnVpbGRTcGVjID0gREVGQVVMVF9TWU5USF9TVEVQX1BBUlRJQUxfQlVJTERfU1BFQyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2RrUGlwZWxpbmUgPSBuZXcgQ29kZVBpcGVsaW5lKHRoaXMsIFwiQ0RLQ29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIGNvZGVQaXBlbGluZTogdGhpcy5waXBlbGluZSxcbiAgICAgIHN5bnRoOiBuZXcgQ29kZUJ1aWxkU3RlcChcIkNka1N5bnRoXCIsIHtcbiAgICAgICAgaW5zdGFsbENvbW1hbmRzOiBbXG4gICAgICAgICAgXCJub2RlIC12XCIsXG4gICAgICAgICAgXCJucG0gaW5zdGFsbCAtLWdsb2JhbCBjb3JlcGFja0BsYXRlc3RcIixcbiAgICAgICAgICBcImNvcmVwYWNrIC0tdmVyc2lvblwiLFxuICAgICAgICAgIFwiY29yZXBhY2sgZW5hYmxlXCIsXG4gICAgICAgIF0sXG4gICAgICAgIGNvbW1hbmRzOiBwcm9wcy5jZGtTeW50aENtZCxcbiAgICAgICAgaW5wdXQ6IHNvdXJjZUZpbGUsXG4gICAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHByb3BzLmNka091dCB8fCBcImNkay5vdXRcIixcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoc3ludGhCdWlsZFNwZWMpLFxuICAgICAgfSksXG4gICAgICBzZWxmTXV0YXRpb246IHRydWUsXG4gICAgICBjb2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICAgICAgY29tcHV0ZVR5cGU6IENvbXB1dGVUeXBlLkxBUkdFLFxuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QXJtQnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl9TVEFOREFSRF8zXzAsXG4gICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgICAgIE5PREVfT1BUSU9OUzoge1xuICAgICAgICAgICAgICB2YWx1ZTogXCItLW1heC1vbGQtc3BhY2Utc2l6ZT04MTkyXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdFN0YWdlRW52OiBTdGFnZUVudlByb3BzID0ge1xuICAgICAgYmV0YTogQkVUQV9FTlZJUk9OTUVOVCxcbiAgICAgIGdhbW1hOiBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgICAgIHByb2Q6IFBST0RfRU5WSVJPTk1FTlQsXG4gICAgfTtcbiAgICBjb25zdCBzdGFnZUVudiA9IHByb3BzLnN0YWdlRW52IHx8IGRlZmF1bHRTdGFnZUVudjtcblxuICAgIGNka1BpcGVsaW5lLmFkZFN0YWdlKFxuICAgICAgbmV3IERlcGxveW1lbnRTdGFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJPcmNhQnVzQmV0YVwiLFxuICAgICAgICBzdGFnZUVudi5iZXRhLFxuICAgICAgICBwcm9wcy5zdGFja05hbWUsXG4gICAgICAgIHByb3BzLnN0YWNrLFxuICAgICAgICBwcm9wcy5zdGFja0NvbmZpZy5iZXRhLFxuICAgICAgICBwcm9wcy5naXRodWJSZXBvLFxuICAgICAgICBwcm9wcy5naXRodWJCcmFuY2gsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBjZGtQaXBlbGluZS5hZGRTdGFnZShcbiAgICAgIG5ldyBEZXBsb3ltZW50U3RhZ2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiT3JjYUJ1c0dhbW1hXCIsXG4gICAgICAgIHN0YWdlRW52LmdhbW1hLFxuICAgICAgICBwcm9wcy5zdGFja05hbWUsXG4gICAgICAgIHByb3BzLnN0YWNrLFxuICAgICAgICBwcm9wcy5zdGFja0NvbmZpZy5nYW1tYSxcbiAgICAgICAgcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAgKSxcbiAgICAgIHsgcG9zdDogW25ldyBNYW51YWxBcHByb3ZhbFN0ZXAoXCJQcm9tb3RlVG9Qcm9kXCIpXSB9LFxuICAgICk7XG5cbiAgICBjZGtQaXBlbGluZS5hZGRTdGFnZShcbiAgICAgIG5ldyBEZXBsb3ltZW50U3RhZ2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiT3JjYUJ1c1Byb2RcIixcbiAgICAgICAgc3RhZ2VFbnYucHJvZCxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcucHJvZCxcbiAgICAgICAgcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgaWYgKHByb3BzLmVuYWJsZVNsYWNrTm90aWZpY2F0aW9uID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IGFsZXJ0c0J1aWxkU2xhY2tDb25maWdBcm4gPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiL2NoYXRib3RfYXJuL3NsYWNrL2FsZXJ0cy1idWlsZFwiLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IFNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24uZnJvbVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvblwiLFxuICAgICAgICBhbGVydHNCdWlsZFNsYWNrQ29uZmlnQXJuLFxuICAgICAgKTtcblxuICAgICAgdGhpcy5waXBlbGluZS5ub3RpZnlPbihcIlBpcGVsaW5lU2xhY2tOb3RpZmljYXRpb25cIiwgdGFyZ2V0LCB7XG4gICAgICAgIGV2ZW50czogcHJvcHMubm90aWZpY2F0aW9uRXZlbnRzIHx8IFtcbiAgICAgICAgICBQaXBlbGluZU5vdGlmaWNhdGlvbkV2ZW50cy5QSVBFTElORV9FWEVDVVRJT05fRkFJTEVELFxuICAgICAgICBdLFxuICAgICAgICBkZXRhaWxUeXBlOiBEZXRhaWxUeXBlLkZVTEwsXG4gICAgICAgIG5vdGlmaWNhdGlvblJ1bGVOYW1lOiBgT3JjYUJ1cy0ke3Byb3BzLnBpcGVsaW5lTmFtZX1gLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIERlcGxveW1lbnRTdGFnZSBleHRlbmRzIFN0YWdlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBlbnZpcm9ubWVudE5hbWU6IHN0cmluZyxcbiAgICBlbnY6IEVudmlyb25tZW50LFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrQ2xhc3M6IG5ldyAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSkgPT4gU3RhY2ssXG4gICAgYXBwU3RhY2tQcm9wczogYW55LFxuICAgIGdpdGh1YlJlcG86IHN0cmluZyxcbiAgICBnaXRodWJCcmFuY2g/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBlbnZpcm9ubWVudE5hbWUsIHsgZW52OiBlbnYgfSk7XG5cbiAgICBsZXQgc291cmNlID0gYGh0dHBzOi8vZ2l0aHViLmNvbS9PcmNhQnVzLyR7Z2l0aHViUmVwb31gO1xuICAgIGlmIChnaXRodWJCcmFuY2ggIT09IHVuZGVmaW5lZCAmJiBnaXRodWJCcmFuY2ggIT09IFwibWFpblwiKSB7XG4gICAgICBzb3VyY2UgPSBgJHtzb3VyY2V9L3RyZWUvJHtnaXRodWJCcmFuY2h9YDtcbiAgICB9XG5cbiAgICBuZXcgc3RhY2tDbGFzcyh0aGlzLCBzdGFja05hbWUsIHtcbiAgICAgIGVudjogZW52LFxuICAgICAgdGFnczoge1xuICAgICAgICBcInVtY2NyLW9yZzpQcm9kdWN0XCI6IFwiT3JjYUJ1c1wiLFxuICAgICAgICBcInVtY2NyLW9yZzpDcmVhdG9yXCI6IFwiQ0RLXCIsXG4gICAgICAgIFwidW1jY3Itb3JnOlNlcnZpY2VcIjogc3RhY2tOYW1lLFxuICAgICAgICBcInVtY2NyLW9yZzpTb3VyY2VcIjogc291cmNlLFxuICAgICAgfSxcbiAgICAgIC4uLmFwcFN0YWNrUHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/dynamodb/index.js CHANGED
@@ -40,7 +40,7 @@ const dynamodb = __importStar(require("aws-cdk-lib/aws-dynamodb"));
40
40
  const aws_cdk_lib_1 = require("aws-cdk-lib");
41
41
  const config_1 = require("./config");
42
42
  class DynamoDbPartitionedConstruct extends constructs_1.Construct {
43
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.7-beta.4" };
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.7-beta.5" };
44
44
  table;
45
45
  constructor(scope, id, props) {
46
46
  super(scope, id);
@@ -75,7 +75,7 @@ class DynamoDbPartitionedConstruct extends constructs_1.Construct {
75
75
  }
76
76
  exports.DynamoDbPartitionedConstruct = DynamoDbPartitionedConstruct;
77
77
  class DynamoDbNonPartitionedConstruct extends constructs_1.Construct {
78
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.7-beta.4" };
78
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.7-beta.5" };
79
79
  table;
80
80
  constructor(scope, id, props) {
81
81
  super(scope, id);
package/ecs/index.js CHANGED
@@ -52,7 +52,7 @@ exports.LAMBDA_ARCHITECTURE_MAP = {
52
52
  ['ARM64']: lambda.Architecture.ARM_64
53
53
  };
54
54
  class EcsFargateTaskConstruct extends constructs_1.Construct {
55
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.7-beta.4" };
55
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.7-beta.5" };
56
56
  cluster;
57
57
  taskDefinition;
58
58
  securityGroup;
package/lambda/index.js CHANGED
@@ -54,7 +54,7 @@ function getPythonUvDockerImage() {
54
54
  return aws_cdk_lib_1.DockerImage.fromBuild(path_1.default.join(__dirname, 'build_python'));
55
55
  }
56
56
  class PythonUvFunction extends aws_lambda_python_alpha_1.PythonFunction {
57
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.7-beta.4" };
57
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.7-beta.5" };
58
58
  // Class constructs, to be used for caching the layers
59
59
  // This means that if there are multiple lambdas throughout the stack
60
60
  // They will all use the same layer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orcabus/platform-cdk-constructs",
3
- "version": "0.0.7-beta.4",
3
+ "version": "0.0.7-beta.5",
4
4
  "description": "CDK Package for OrcaBus infrastructure.",
5
5
  "main": "index.ts",
6
6
  "types": "index.d.ts",