@openhi/constructs 0.0.126 → 0.0.127

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/lib/index.mjs CHANGED
@@ -1487,32 +1487,14 @@ import { Construct as Construct7 } from "constructs";
1487
1487
  var RootHostedZone = class extends Construct7 {
1488
1488
  };
1489
1489
 
1490
- // src/components/static-hosting/static-content.ts
1491
- import { BucketDeployment, Source } from "aws-cdk-lib/aws-s3-deployment";
1492
- import { paramCase as paramCase2 } from "change-case";
1493
- import { Construct as Construct8 } from "constructs";
1494
- var StaticContent = class extends Construct8 {
1495
- constructor(scope, id, props) {
1496
- super(scope, id);
1497
- const stack = OpenHiService.of(scope);
1498
- const {
1499
- bucket,
1500
- contentSourceDirectory,
1501
- contentDestinationDirectory = "/",
1502
- subDomain = stack.branchName,
1503
- fullDomain
1504
- } = props;
1505
- const keyPrefix = [paramCase2(subDomain), fullDomain].join(".");
1506
- const isTestEnv = process.env.JEST_WORKER_ID !== void 0;
1507
- const sources = isTestEnv ? [] : [Source.asset(contentSourceDirectory)];
1508
- new BucketDeployment(this, "deploy", {
1509
- sources,
1510
- destinationBucket: bucket,
1511
- retainOnDelete: false,
1512
- destinationKeyPrefix: `${keyPrefix}${contentDestinationDirectory}`
1513
- });
1514
- }
1515
- };
1490
+ // src/components/static-hosting/per-branch-hostname.ts
1491
+ import { Distribution as Distribution2 } from "aws-cdk-lib/aws-cloudfront";
1492
+ import {
1493
+ ARecord as ARecord2,
1494
+ RecordTarget as RecordTarget2
1495
+ } from "aws-cdk-lib/aws-route53";
1496
+ import { CloudFrontTarget as CloudFrontTarget2 } from "aws-cdk-lib/aws-route53-targets";
1497
+ import { Construct as Construct9 } from "constructs";
1516
1498
 
1517
1499
  // src/components/static-hosting/static-hosting.ts
1518
1500
  import * as fs6 from "fs";
@@ -1543,9 +1525,9 @@ import {
1543
1525
  } from "aws-cdk-lib/aws-route53";
1544
1526
  import { CloudFrontTarget } from "aws-cdk-lib/aws-route53-targets";
1545
1527
  import { Bucket as Bucket2 } from "aws-cdk-lib/aws-s3";
1546
- import { Construct as Construct9 } from "constructs";
1528
+ import { Construct as Construct8 } from "constructs";
1547
1529
  var STATIC_HOSTING_SERVICE_TYPE = "website";
1548
- var _StaticHosting = class _StaticHosting extends Construct9 {
1530
+ var _StaticHosting = class _StaticHosting extends Construct8 {
1549
1531
  /**
1550
1532
  * Returns true when `domainName` begins with a wildcard label (`*.`),
1551
1533
  * indicating it is an alt-name on the CloudFront cert but cannot be
@@ -1742,6 +1724,71 @@ _StaticHosting.SSM_PARAM_NAME_DISTRIBUTION_DOMAIN = "STATIC_HOSTING_DISTRIBUTION
1742
1724
  _StaticHosting.SSM_PARAM_NAME_DISTRIBUTION_ID = "STATIC_HOSTING_DISTRIBUTION_ID";
1743
1725
  var StaticHosting = _StaticHosting;
1744
1726
 
1727
+ // src/components/static-hosting/per-branch-hostname.ts
1728
+ var PerBranchHostname = class extends Construct9 {
1729
+ constructor(scope, id, props) {
1730
+ super(scope, id);
1731
+ const stack = OpenHiService.of(scope);
1732
+ const serviceType = props.serviceType ?? STATIC_HOSTING_SERVICE_TYPE;
1733
+ const distributionDomain = DiscoverableStringParameter.valueForLookupName(
1734
+ this,
1735
+ {
1736
+ ssmParamName: StaticHosting.SSM_PARAM_NAME_DISTRIBUTION_DOMAIN,
1737
+ serviceType,
1738
+ branchHash: stack.releaseBranchHash
1739
+ }
1740
+ );
1741
+ const distributionId = DiscoverableStringParameter.valueForLookupName(
1742
+ this,
1743
+ {
1744
+ ssmParamName: StaticHosting.SSM_PARAM_NAME_DISTRIBUTION_ID,
1745
+ serviceType,
1746
+ branchHash: stack.releaseBranchHash
1747
+ }
1748
+ );
1749
+ const distribution = Distribution2.fromDistributionAttributes(
1750
+ this,
1751
+ "imported-distribution",
1752
+ {
1753
+ domainName: distributionDomain,
1754
+ distributionId
1755
+ }
1756
+ );
1757
+ this.record = new ARecord2(this, "alias-record", {
1758
+ zone: props.hostedZone,
1759
+ recordName: props.hostname,
1760
+ target: RecordTarget2.fromAlias(new CloudFrontTarget2(distribution))
1761
+ });
1762
+ }
1763
+ };
1764
+
1765
+ // src/components/static-hosting/static-content.ts
1766
+ import { BucketDeployment, Source } from "aws-cdk-lib/aws-s3-deployment";
1767
+ import { paramCase as paramCase2 } from "change-case";
1768
+ import { Construct as Construct10 } from "constructs";
1769
+ var StaticContent = class extends Construct10 {
1770
+ constructor(scope, id, props) {
1771
+ super(scope, id);
1772
+ const stack = OpenHiService.of(scope);
1773
+ const {
1774
+ bucket,
1775
+ contentSourceDirectory,
1776
+ contentDestinationDirectory = "/",
1777
+ subDomain = stack.branchName,
1778
+ fullDomain
1779
+ } = props;
1780
+ const keyPrefix = [paramCase2(subDomain), fullDomain].join(".");
1781
+ const isTestEnv = process.env.JEST_WORKER_ID !== void 0;
1782
+ const sources = isTestEnv ? [] : [Source.asset(contentSourceDirectory)];
1783
+ new BucketDeployment(this, "deploy", {
1784
+ sources,
1785
+ destinationBucket: bucket,
1786
+ retainOnDelete: false,
1787
+ destinationKeyPrefix: `${keyPrefix}${contentDestinationDirectory}`
1788
+ });
1789
+ }
1790
+ };
1791
+
1745
1792
  // src/services/open-hi-auth-service.ts
1746
1793
  import {
1747
1794
  LambdaVersion,
@@ -1771,7 +1818,7 @@ import {
1771
1818
  import { StringParameter as StringParameter3 } from "aws-cdk-lib/aws-ssm";
1772
1819
 
1773
1820
  // src/workflows/control-plane/platform-deploy-bridge/platform-deploy-bridge.ts
1774
- import { Construct as Construct11 } from "constructs";
1821
+ import { Construct as Construct12 } from "constructs";
1775
1822
 
1776
1823
  // src/workflows/control-plane/platform-deploy-bridge/platform-deploy-bridge-lambda.ts
1777
1824
  import fs7 from "fs";
@@ -1782,7 +1829,7 @@ import { LambdaFunction } from "aws-cdk-lib/aws-events-targets";
1782
1829
  import { Effect as Effect2, PolicyStatement as PolicyStatement2 } from "aws-cdk-lib/aws-iam";
1783
1830
  import { Runtime as Runtime7 } from "aws-cdk-lib/aws-lambda";
1784
1831
  import { NodejsFunction as NodejsFunction7 } from "aws-cdk-lib/aws-lambda-nodejs";
1785
- import { Construct as Construct10 } from "constructs";
1832
+ import { Construct as Construct11 } from "constructs";
1786
1833
  var HANDLER_NAME6 = "platform-deploy-bridge.handler.js";
1787
1834
  function resolveHandlerEntry6(dirname) {
1788
1835
  const sameDir = path7.join(dirname, HANDLER_NAME6);
@@ -1791,7 +1838,7 @@ function resolveHandlerEntry6(dirname) {
1791
1838
  }
1792
1839
  return path7.join(dirname, "..", "..", "..", "..", "lib", HANDLER_NAME6);
1793
1840
  }
1794
- var PlatformDeployBridgeLambda = class extends Construct10 {
1841
+ var PlatformDeployBridgeLambda = class extends Construct11 {
1795
1842
  constructor(scope, props) {
1796
1843
  super(scope, "platform-deploy-bridge-lambda");
1797
1844
  const service = OpenHiService.of(this);
@@ -1847,7 +1894,7 @@ var PlatformDeployBridgeLambda = class extends Construct10 {
1847
1894
  };
1848
1895
 
1849
1896
  // src/workflows/control-plane/platform-deploy-bridge/platform-deploy-bridge.ts
1850
- var PlatformDeployBridge = class extends Construct11 {
1897
+ var PlatformDeployBridge = class extends Construct12 {
1851
1898
  constructor(scope, props) {
1852
1899
  super(scope, "platform-deploy-bridge");
1853
1900
  this.bridgeLambda = new PlatformDeployBridgeLambda(this, {
@@ -2048,7 +2095,7 @@ import { LambdaFunction as LambdaFunction2 } from "aws-cdk-lib/aws-events-target
2048
2095
  import { Effect as Effect3, PolicyStatement as PolicyStatement3 } from "aws-cdk-lib/aws-iam";
2049
2096
  import { Runtime as Runtime8 } from "aws-cdk-lib/aws-lambda";
2050
2097
  import { NodejsFunction as NodejsFunction8 } from "aws-cdk-lib/aws-lambda-nodejs";
2051
- import { Construct as Construct12 } from "constructs";
2098
+ import { Construct as Construct13 } from "constructs";
2052
2099
  var HANDLER_NAME7 = "seed-demo-data.handler.js";
2053
2100
  function resolveHandlerEntry7(dirname) {
2054
2101
  const sameDir = path8.join(dirname, HANDLER_NAME7);
@@ -2057,7 +2104,7 @@ function resolveHandlerEntry7(dirname) {
2057
2104
  }
2058
2105
  return path8.join(dirname, "..", "..", "..", "..", "lib", HANDLER_NAME7);
2059
2106
  }
2060
- var SeedDemoDataLambda = class extends Construct12 {
2107
+ var SeedDemoDataLambda = class extends Construct13 {
2061
2108
  constructor(scope, props) {
2062
2109
  super(scope, "seed-demo-data-lambda");
2063
2110
  this.lambda = new NodejsFunction8(this, "handler", {
@@ -2118,8 +2165,8 @@ var SeedDemoDataLambda = class extends Construct12 {
2118
2165
  };
2119
2166
 
2120
2167
  // src/workflows/control-plane/seed-demo-data/seed-demo-data-workflow.ts
2121
- import { Construct as Construct13 } from "constructs";
2122
- var SeedDemoDataWorkflow = class extends Construct13 {
2168
+ import { Construct as Construct14 } from "constructs";
2169
+ var SeedDemoDataWorkflow = class extends Construct14 {
2123
2170
  constructor(scope, props) {
2124
2171
  super(scope, "seed-demo-data-workflow");
2125
2172
  this.seedDemoData = new SeedDemoDataLambda(this, {
@@ -2145,7 +2192,7 @@ import { LambdaFunction as LambdaFunction3 } from "aws-cdk-lib/aws-events-target
2145
2192
  import { Effect as Effect4, PolicyStatement as PolicyStatement4 } from "aws-cdk-lib/aws-iam";
2146
2193
  import { Runtime as Runtime9 } from "aws-cdk-lib/aws-lambda";
2147
2194
  import { NodejsFunction as NodejsFunction9 } from "aws-cdk-lib/aws-lambda-nodejs";
2148
- import { Construct as Construct14 } from "constructs";
2195
+ import { Construct as Construct15 } from "constructs";
2149
2196
  var HANDLER_NAME8 = "seed-system-data.handler.js";
2150
2197
  function resolveHandlerEntry8(dirname) {
2151
2198
  const sameDir = path9.join(dirname, HANDLER_NAME8);
@@ -2154,7 +2201,7 @@ function resolveHandlerEntry8(dirname) {
2154
2201
  }
2155
2202
  return path9.join(dirname, "..", "..", "..", "..", "lib", HANDLER_NAME8);
2156
2203
  }
2157
- var SeedSystemDataLambda = class extends Construct14 {
2204
+ var SeedSystemDataLambda = class extends Construct15 {
2158
2205
  constructor(scope, props) {
2159
2206
  super(scope, "seed-system-data-lambda");
2160
2207
  this.lambda = new NodejsFunction9(this, "handler", {
@@ -2206,8 +2253,8 @@ var SeedSystemDataLambda = class extends Construct14 {
2206
2253
  };
2207
2254
 
2208
2255
  // src/workflows/control-plane/seed-system-data/seed-system-data-workflow.ts
2209
- import { Construct as Construct15 } from "constructs";
2210
- var SeedSystemDataWorkflow = class extends Construct15 {
2256
+ import { Construct as Construct16 } from "constructs";
2257
+ var SeedSystemDataWorkflow = class extends Construct16 {
2211
2258
  constructor(scope, props) {
2212
2259
  super(scope, "seed-system-data-workflow");
2213
2260
  this.seedSystemData = new SeedSystemDataLambda(this, {
@@ -2341,7 +2388,7 @@ import { LambdaFunction as LambdaFunction4 } from "aws-cdk-lib/aws-events-target
2341
2388
  import { Effect as Effect5, PolicyStatement as PolicyStatement5 } from "aws-cdk-lib/aws-iam";
2342
2389
  import { Runtime as Runtime10 } from "aws-cdk-lib/aws-lambda";
2343
2390
  import { NodejsFunction as NodejsFunction10 } from "aws-cdk-lib/aws-lambda-nodejs";
2344
- import { Construct as Construct16 } from "constructs";
2391
+ import { Construct as Construct17 } from "constructs";
2345
2392
  var HANDLER_NAME9 = "provision-default-workspace.handler.js";
2346
2393
  function resolveHandlerEntry9(dirname) {
2347
2394
  const sameDir = path10.join(dirname, HANDLER_NAME9);
@@ -2350,7 +2397,7 @@ function resolveHandlerEntry9(dirname) {
2350
2397
  }
2351
2398
  return path10.join(dirname, "..", "..", "..", "..", "lib", HANDLER_NAME9);
2352
2399
  }
2353
- var ProvisionDefaultWorkspaceLambda = class extends Construct16 {
2400
+ var ProvisionDefaultWorkspaceLambda = class extends Construct17 {
2354
2401
  constructor(scope, props) {
2355
2402
  super(scope, "provision-default-workspace-lambda");
2356
2403
  this.lambda = new NodejsFunction10(this, "handler", {
@@ -2390,8 +2437,8 @@ var ProvisionDefaultWorkspaceLambda = class extends Construct16 {
2390
2437
  };
2391
2438
 
2392
2439
  // src/workflows/control-plane/user-onboarding/user-onboarding-workflow.ts
2393
- import { Construct as Construct17 } from "constructs";
2394
- var UserOnboardingWorkflow = class extends Construct17 {
2440
+ import { Construct as Construct18 } from "constructs";
2441
+ var UserOnboardingWorkflow = class extends Construct18 {
2395
2442
  constructor(scope, props) {
2396
2443
  super(scope, "user-onboarding-workflow");
2397
2444
  this.provisionDefaultWorkspace = new ProvisionDefaultWorkspaceLambda(this, {
@@ -2678,20 +2725,20 @@ import { HttpUserPoolAuthorizer } from "aws-cdk-lib/aws-apigatewayv2-authorizers
2678
2725
  import { HttpLambdaIntegration } from "aws-cdk-lib/aws-apigatewayv2-integrations";
2679
2726
  import { Effect as Effect7, PolicyStatement as PolicyStatement7 } from "aws-cdk-lib/aws-iam";
2680
2727
  import {
2681
- ARecord as ARecord2,
2728
+ ARecord as ARecord3,
2682
2729
  HostedZone as HostedZone3,
2683
- RecordTarget as RecordTarget2
2730
+ RecordTarget as RecordTarget3
2684
2731
  } from "aws-cdk-lib/aws-route53";
2685
2732
  import { ApiGatewayv2DomainProperties } from "aws-cdk-lib/aws-route53-targets";
2686
2733
  import { Duration as Duration10 } from "aws-cdk-lib/core";
2687
- import { Construct as Construct20 } from "constructs";
2734
+ import { Construct as Construct21 } from "constructs";
2688
2735
 
2689
2736
  // src/data/lambda/cors-options-lambda.ts
2690
2737
  import fs11 from "fs";
2691
2738
  import path11 from "path";
2692
2739
  import { Runtime as Runtime11 } from "aws-cdk-lib/aws-lambda";
2693
2740
  import { NodejsFunction as NodejsFunction11 } from "aws-cdk-lib/aws-lambda-nodejs";
2694
- import { Construct as Construct18 } from "constructs";
2741
+ import { Construct as Construct19 } from "constructs";
2695
2742
  var HANDLER_NAME10 = "cors-options-lambda.handler.js";
2696
2743
  function resolveHandlerEntry10(dirname) {
2697
2744
  const sameDir = path11.join(dirname, HANDLER_NAME10);
@@ -2701,7 +2748,7 @@ function resolveHandlerEntry10(dirname) {
2701
2748
  const fromLib = path11.join(dirname, "..", "..", "..", "lib", HANDLER_NAME10);
2702
2749
  return fromLib;
2703
2750
  }
2704
- var CorsOptionsLambda = class extends Construct18 {
2751
+ var CorsOptionsLambda = class extends Construct19 {
2705
2752
  constructor(scope, id = "cors-options-lambda") {
2706
2753
  super(scope, id);
2707
2754
  this.lambda = new NodejsFunction11(this, "handler", {
@@ -2717,7 +2764,7 @@ import fs12 from "fs";
2717
2764
  import path12 from "path";
2718
2765
  import { Runtime as Runtime12 } from "aws-cdk-lib/aws-lambda";
2719
2766
  import { NodejsFunction as NodejsFunction12 } from "aws-cdk-lib/aws-lambda-nodejs";
2720
- import { Construct as Construct19 } from "constructs";
2767
+ import { Construct as Construct20 } from "constructs";
2721
2768
  var HANDLER_NAME11 = "rest-api-lambda.handler.js";
2722
2769
  function resolveHandlerEntry11(dirname) {
2723
2770
  const sameDir = path12.join(dirname, HANDLER_NAME11);
@@ -2727,7 +2774,7 @@ function resolveHandlerEntry11(dirname) {
2727
2774
  const fromLib = path12.join(dirname, "..", "..", "..", "lib", HANDLER_NAME11);
2728
2775
  return fromLib;
2729
2776
  }
2730
- var RestApiLambda = class extends Construct19 {
2777
+ var RestApiLambda = class extends Construct20 {
2731
2778
  constructor(scope, props) {
2732
2779
  super(scope, "rest-api-lambda");
2733
2780
  this.lambda = new NodejsFunction12(this, "handler", {
@@ -2993,10 +3040,10 @@ var _OpenHiRestApiService = class _OpenHiRestApiService extends OpenHiService {
2993
3040
  integration
2994
3041
  });
2995
3042
  const apiPrefix = this.branchName === "main" ? `api` : `api-${this.childZonePrefix}`;
2996
- new ARecord2(this, "api-a-record", {
3043
+ new ARecord3(this, "api-a-record", {
2997
3044
  zone: hostedZone,
2998
3045
  recordName: apiPrefix,
2999
- target: RecordTarget2.fromAlias(
3046
+ target: RecordTarget3.fromAlias(
3000
3047
  new ApiGatewayv2DomainProperties(
3001
3048
  domainName.regionalDomainName,
3002
3049
  domainName.regionalHostedZoneId
@@ -3069,7 +3116,7 @@ var _OpenHiRestApiService = class _OpenHiRestApiService extends OpenHiService {
3069
3116
  if (this.props.runtimeConfig === void 0) {
3070
3117
  return void 0;
3071
3118
  }
3072
- const cognitoScope = new Construct20(this, "runtime-config");
3119
+ const cognitoScope = new Construct21(this, "runtime-config");
3073
3120
  const userPool = OpenHiAuthService.userPoolFromConstruct(cognitoScope);
3074
3121
  const userPoolClient = OpenHiAuthService.userPoolClientFromConstruct(cognitoScope);
3075
3122
  const userPoolDomain = OpenHiAuthService.userPoolDomainFromConstruct(cognitoScope);
@@ -3329,7 +3376,7 @@ import { Duration as Duration11 } from "aws-cdk-lib";
3329
3376
  import { Effect as Effect8, PolicyStatement as PolicyStatement8 } from "aws-cdk-lib/aws-iam";
3330
3377
  import { Runtime as Runtime13 } from "aws-cdk-lib/aws-lambda";
3331
3378
  import { NodejsFunction as NodejsFunction13 } from "aws-cdk-lib/aws-lambda-nodejs";
3332
- import { Construct as Construct21 } from "constructs";
3379
+ import { Construct as Construct22 } from "constructs";
3333
3380
  function resolveHandlerEntry12(dirname, handlerName) {
3334
3381
  const sameDir = path13.join(dirname, handlerName);
3335
3382
  if (fs13.existsSync(sameDir)) {
@@ -3338,7 +3385,7 @@ function resolveHandlerEntry12(dirname, handlerName) {
3338
3385
  const libDir = path13.join(dirname, "..", "..", "..", "..", "lib", handlerName);
3339
3386
  return { entry: libDir, handler: "handler" };
3340
3387
  }
3341
- var OwningDeleteCascadeLambdas = class extends Construct21 {
3388
+ var OwningDeleteCascadeLambdas = class extends Construct22 {
3342
3389
  constructor(scope, props) {
3343
3390
  super(scope, "owning-delete-cascade-lambdas");
3344
3391
  const listResolved = resolveHandlerEntry12(
@@ -3416,8 +3463,8 @@ import {
3416
3463
  WaitTime
3417
3464
  } from "aws-cdk-lib/aws-stepfunctions";
3418
3465
  import { LambdaInvoke } from "aws-cdk-lib/aws-stepfunctions-tasks";
3419
- import { Construct as Construct22 } from "constructs";
3420
- var OwningDeleteCascadeWorkflow = class extends Construct22 {
3466
+ import { Construct as Construct23 } from "constructs";
3467
+ var OwningDeleteCascadeWorkflow = class extends Construct23 {
3421
3468
  constructor(scope, props) {
3422
3469
  super(scope, "owning-delete-cascade-workflow");
3423
3470
  this.lambdas = new OwningDeleteCascadeLambdas(this, {
@@ -3582,7 +3629,7 @@ import { Duration as Duration13 } from "aws-cdk-lib";
3582
3629
  import { Effect as Effect9, PolicyStatement as PolicyStatement9 } from "aws-cdk-lib/aws-iam";
3583
3630
  import { Runtime as Runtime14 } from "aws-cdk-lib/aws-lambda";
3584
3631
  import { NodejsFunction as NodejsFunction14 } from "aws-cdk-lib/aws-lambda-nodejs";
3585
- import { Construct as Construct23 } from "constructs";
3632
+ import { Construct as Construct24 } from "constructs";
3586
3633
  function resolveHandlerEntry13(dirname, handlerName) {
3587
3634
  const sameDir = path14.join(dirname, handlerName);
3588
3635
  if (fs14.existsSync(sameDir)) {
@@ -3591,7 +3638,7 @@ function resolveHandlerEntry13(dirname, handlerName) {
3591
3638
  const libDir = path14.join(dirname, "..", "..", "..", "..", "lib", handlerName);
3592
3639
  return { entry: libDir, handler: "handler" };
3593
3640
  }
3594
- var RenameCascadeLambdas = class extends Construct23 {
3641
+ var RenameCascadeLambdas = class extends Construct24 {
3595
3642
  constructor(scope, props) {
3596
3643
  super(scope, "rename-cascade-lambdas");
3597
3644
  const listResolved = resolveHandlerEntry13(
@@ -3665,8 +3712,8 @@ import {
3665
3712
  TaskInput as TaskInput2
3666
3713
  } from "aws-cdk-lib/aws-stepfunctions";
3667
3714
  import { LambdaInvoke as LambdaInvoke2 } from "aws-cdk-lib/aws-stepfunctions-tasks";
3668
- import { Construct as Construct24 } from "constructs";
3669
- var RenameCascadeWorkflow = class extends Construct24 {
3715
+ import { Construct as Construct25 } from "constructs";
3716
+ var RenameCascadeWorkflow = class extends Construct25 {
3670
3717
  constructor(scope, props) {
3671
3718
  super(scope, "rename-cascade-workflow");
3672
3719
  this.lambdas = new RenameCascadeLambdas(this, {
@@ -3899,6 +3946,7 @@ export {
3899
3946
  POSTGRES_REPLICA_DATABASE_NAME_SSM_NAME,
3900
3947
  POSTGRES_REPLICA_SECRET_ARN_SSM_NAME,
3901
3948
  PROVISION_DEFAULT_WORKSPACE_DETAIL_TYPE,
3949
+ PerBranchHostname,
3902
3950
  PlatformDeployBridge,
3903
3951
  PlatformDeployBridgeLambda,
3904
3952
  export_PlatformDeploymentCompletedV1 as PlatformDeploymentCompletedV1,