@orcabus/platform-cdk-constructs 0.0.58 → 0.0.60

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
@@ -6840,6 +6840,6 @@
6840
6840
  "symbolId": "shared-config/slack:SlackAlerts"
6841
6841
  }
6842
6842
  },
6843
- "version": "0.0.58",
6844
- "fingerprint": "oUicVWk/fEb55CHpTf57ODWtvoaQMNtBCt5rsPu4qXc="
6843
+ "version": "0.0.60",
6844
+ "fingerprint": "vktH8B5/YX36fd6cGBqnrIiHGmT6m33RPzKFNi//MWs="
6845
6845
  }
@@ -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.58" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.60" };
19
19
  /**
20
20
  * The AWS region where the API Gateway is deployed.
21
21
  */
@@ -13,7 +13,7 @@ exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = "orcabus-cross-deployment-codepi
13
13
  exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = "orcabus-cross-deployment-codepipeline-artifact";
14
14
  exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = "/orcabus/deployment-stack-pipeline/artifact-bucket/kms-key-arn";
15
15
  class CrossDeploymentArtifactBucket extends constructs_1.Construct {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.58" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.60" };
17
17
  /**
18
18
  * The S3 bucket used to store artifacts for cross-deployment pipelines.
19
19
  */
@@ -32,7 +32,7 @@ exports.DEFAULT_SYNTH_STEP_PARTIAL_BUILD_SPEC = {
32
32
  * before using this construct.
33
33
  */
34
34
  class DeploymentStackPipeline extends constructs_1.Construct {
35
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.58" };
35
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.60" };
36
36
  /**
37
37
  * The code pipeline construct that is created.
38
38
  */
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.58" };
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.60" };
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.58" };
78
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.60" };
79
79
  table;
80
80
  constructor(scope, id, props) {
81
81
  super(scope, id);
package/ecs/index.js CHANGED
@@ -55,7 +55,7 @@ exports.LAMBDA_ARCHITECTURE_MAP = {
55
55
  ['ARM64']: lambda.Architecture.ARM_64
56
56
  };
57
57
  class EcsFargateTaskConstruct extends constructs_1.Construct {
58
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.58" };
58
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.60" };
59
59
  cluster;
60
60
  taskDefinition;
61
61
  taskExecutionRole;
package/lambda/index.js CHANGED
@@ -56,7 +56,7 @@ function getPythonUvDockerImage() {
56
56
  return aws_cdk_lib_1.DockerImage.fromBuild(path_1.default.join(__dirname, 'build_python'));
57
57
  }
58
58
  class PythonUvFunction extends aws_lambda_python_alpha_1.PythonFunction {
59
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.58" };
59
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.60" };
60
60
  // Class constructs, to be used for caching the layers
61
61
  // This means that if there are multiple lambdas throughout the stack
62
62
  // They will all use the same layer
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
5
5
  [tool.poetry]
6
6
  name = "icav2_tools"
7
7
  version = "1.0.0"
8
- description = "Useful layer for python lambdas that use ICAv2, smart-collection of the ICAv2 access token"
8
+ description = "Useful layer for python lambdas that use ICAv2, smart-collection of the ICAv2 access token and other env vars"
9
9
  license = "GPL-3.0-or-later"
10
10
  authors = [
11
11
  "Alexis Lucattini"
@@ -15,7 +15,7 @@ repository = "https://github.com/orcabus/platform-cdk-constructs"
15
15
 
16
16
  [tool.poetry.dependencies]
17
17
  python = ">3.12,<3.13"
18
- wrapica = "2.37.0"
18
+ wrapica = "2.38.0.dev20250813155848"
19
19
 
20
20
  [tool.poetry.group.dev]
21
21
  optional = true
@@ -29,7 +29,7 @@ mypy-boto3-secretsmanager = ">=1.34.0, <2"
29
29
  name = "PyPI"
30
30
  priority = "primary"
31
31
 
32
- #[[tool.poetry.source]]
33
- #name = "testpypi"
34
- #url = "https://test.pypi.org/simple/"
35
- #priority = "supplemental"
32
+ [[tool.poetry.source]]
33
+ name = "testpypi"
34
+ url = "https://test.pypi.org/simple/"
35
+ priority = "supplemental"
@@ -1,17 +1,79 @@
1
1
  #!/usr/bin/env python
2
2
 
3
- from .aws_helpers import get_icav2_access_token
3
+ # Standard imports
4
4
  from os import environ
5
+ from tempfile import NamedTemporaryFile
6
+ from ruamel.yaml import YAML
7
+ from pathlib import Path
8
+
9
+ # Local imports
10
+ from .aws_helpers import (
11
+ get_icav2_access_token,
12
+ get_storage_configuration_list,
13
+ get_project_to_storage_configuration_list,
14
+ get_storage_credential_list
15
+ )
5
16
  from .globals import ICAV2_BASE_URL
6
17
 
7
18
 
19
+ def create_storage_configuration_file() -> Path:
20
+ storage_configuration_file = Path(NamedTemporaryFile(
21
+ delete=False,
22
+ prefix='storage-configuration',
23
+ suffix='.yaml'
24
+ ).name)
25
+ yaml = YAML()
26
+ with open(storage_configuration_file, 'w') as file_h:
27
+ yaml.dump(
28
+ get_storage_configuration_list(),
29
+ file_h
30
+ )
31
+ return storage_configuration_file
32
+
33
+
34
+ def create_project_to_storage_configuration_mapping_file() -> Path:
35
+ project_to_storage_configuration_file = Path(NamedTemporaryFile(
36
+ delete=False,
37
+ prefix='project-to-storage-configuration',
38
+ suffix='.yaml'
39
+ ).name)
40
+ yaml = YAML()
41
+ with open(project_to_storage_configuration_file, 'w') as file_h:
42
+ yaml.dump(
43
+ get_project_to_storage_configuration_list(),
44
+ file_h
45
+ )
46
+ return project_to_storage_configuration_file
47
+
48
+
49
+ def create_storage_credential_file() -> Path:
50
+ storage_credential_file = Path(NamedTemporaryFile(
51
+ delete=False,
52
+ prefix='storage-credential',
53
+ suffix='.yaml'
54
+ ).name)
55
+ yaml = YAML()
56
+ with open(storage_credential_file, 'w') as file_h:
57
+ yaml.dump(
58
+ get_storage_credential_list(),
59
+ file_h
60
+ )
61
+ return storage_credential_file
62
+
63
+
8
64
  def set_icav2_env_vars():
9
65
  """
10
66
  Set the environment variables for the ICAV2 API
11
67
  :return:
12
68
  """
13
- environ["ICAV2_ACCESS_TOKEN"] = get_icav2_access_token()
69
+ # Standard environment variables
14
70
  environ["ICAV2_BASE_URL"] = ICAV2_BASE_URL
71
+ environ["ICAV2_ACCESS_TOKEN"] = get_icav2_access_token()
72
+
73
+ # Configuration files needed to map storage configurations
74
+ environ["ICAV2_STORAGE_CONFIGURATION_LIST_FILE"] = str(create_storage_configuration_file())
75
+ environ["ICAV2_PROJECT_TO_STORAGE_CONFIGURATION_MAPPING_LIST_FILE"] = str(create_project_to_storage_configuration_mapping_file())
76
+ environ["ICAV2_STORAGE_CREDENTIAL_LIST_FILE"] = str(create_storage_credential_file())
15
77
 
16
78
 
17
79
  __all__ = [
@@ -2,21 +2,29 @@
2
2
 
3
3
  # Standard imports
4
4
  import typing
5
- from typing import Optional
5
+ from typing import Optional, List, cast
6
6
  import boto3
7
7
  import json
8
8
  from os import environ
9
9
  import urllib3
10
10
  from urllib.parse import urlunparse
11
11
 
12
+ # Wrapica imports
13
+ from wrapica.storage_configuration import StorageConfigurationObjectModel, ProjectToStorageMappingDictModel
14
+ from wrapica.storage_credentials import StorageCredentialMappingModel
12
15
 
13
16
  # Type hinting
14
17
  if typing.TYPE_CHECKING:
15
18
  from mypy_boto3_secretsmanager import SecretsManagerClient
16
19
  from mypy_boto3_ssm import SSMClient
20
+ from mypy_boto3_ssm.type_defs import GetParametersByPathResultTypeDef, ParameterTypeDef
17
21
 
18
22
  # Set globals
19
- from .globals import ICAV2_BASE_URL
23
+ from .globals import (
24
+ STORAGE_CONFIGURATIONS_SSM_PATH,
25
+ STORAGE_CREDENTIALS_SSM_PATH,
26
+ PROJECT_TO_STORAGE_CONFIGURATION_SSM_PATH
27
+ )
20
28
 
21
29
  http = urllib3.PoolManager()
22
30
 
@@ -26,7 +34,8 @@ SECRETS_URL = '/secretsmanager/get/'
26
34
 
27
35
  def retrieve_extension_value(url, query):
28
36
  url = str(urlunparse((
29
- 'http', f'localhost:{LOCAL_HTTP_CACHE_PORT}',
37
+ 'http',
38
+ f'localhost:{LOCAL_HTTP_CACHE_PORT}',
30
39
  url, None,
31
40
  "&".join(list(map(
32
41
  lambda kv: f"{kv[0]}={kv[1]}",
@@ -55,6 +64,21 @@ def get_ssm_value_from_cache(parameter_name: str) -> Optional[str]:
55
64
  return None
56
65
 
57
66
 
67
+ def get_ssm_list_from_cache(path: str) -> Optional[List[str]]:
68
+ try:
69
+ return retrieve_extension_value(
70
+ PARAMETER_URL,
71
+ {
72
+ "path": path,
73
+ "recursive": "true",
74
+ }
75
+ )
76
+ except Exception as e:
77
+ print("Got an exception while trying to get ssm list from cache")
78
+ print(e)
79
+ return None
80
+
81
+
58
82
  def get_secret_value_from_cache(secret_id: str) -> Optional[str]:
59
83
  try:
60
84
  return retrieve_extension_value(
@@ -108,9 +132,86 @@ def get_ssm_value(parameter_name) -> str:
108
132
  return get_ssm_parameter_response['Parameter']['Value']
109
133
 
110
134
 
135
+ def get_ssm_parameters_list_by_path(parameter_path: str) -> List['ParameterTypeDef']:
136
+ """
137
+ We cannot use the cache for this function because we don't know what we're missing
138
+ :param parameter_path:
139
+ :return:
140
+ """
141
+
142
+ next_token = None
143
+ ssm_response_list = []
144
+
145
+ while True:
146
+ ssm_response: 'GetParametersByPathResultTypeDef' = get_ssm_client().get_parameters_by_path(
147
+ **dict(filter(
148
+ lambda kv_iter_: kv_iter_[1] is not None,
149
+ {
150
+ "Path": parameter_path,
151
+ "Recursive": True,
152
+ "NextToken": next_token,
153
+ "MaxResults": 10,
154
+ }.items()
155
+ ))
156
+ )
157
+ ssm_response_list.extend(
158
+ ssm_response['Parameters']
159
+ )
160
+
161
+ if "NextToken" in ssm_response:
162
+ next_token = ssm_response["NextToken"]
163
+ else:
164
+ break
165
+
166
+ return ssm_response_list
167
+
168
+
111
169
  def get_icav2_access_token() -> str:
112
170
  """
113
171
  From the AWS Secrets Manager, retrieve the OrcaBus token.
114
172
  :return:
115
173
  """
116
174
  return get_secret_value(environ.get("ICAV2_ACCESS_TOKEN_SECRET_ID"))
175
+
176
+
177
+ def get_storage_configuration_list() -> List['StorageConfigurationObjectModel']:
178
+ """
179
+ Storage configuration list is a list of storage configurations
180
+ :return:
181
+ """
182
+ # Get the ssm parameter list
183
+ storage_configuration_ssm_parameter_list = get_ssm_parameters_list_by_path(str(STORAGE_CONFIGURATIONS_SSM_PATH) + "/")
184
+
185
+ return list(map(
186
+ lambda ssm_parameter_obj_iter: cast(
187
+ StorageConfigurationObjectModel,
188
+ json.loads(ssm_parameter_obj_iter['Value'])
189
+ ),
190
+ storage_configuration_ssm_parameter_list
191
+ ))
192
+
193
+
194
+ def get_project_to_storage_configuration_list() -> List['ProjectToStorageMappingDictModel']:
195
+ # Get the ssm parameter list
196
+ project_to_storage_ssm_parameter_list = get_ssm_parameters_list_by_path(str(PROJECT_TO_STORAGE_CONFIGURATION_SSM_PATH) + "/")
197
+
198
+ return list(map(
199
+ lambda ssm_parameter_obj_iter: cast(
200
+ ProjectToStorageMappingDictModel,
201
+ json.loads(ssm_parameter_obj_iter['Value'])
202
+ ),
203
+ project_to_storage_ssm_parameter_list
204
+ ))
205
+
206
+
207
+ def get_storage_credential_list() -> List['StorageCredentialMappingModel']:
208
+ # Get the ssm parameter list
209
+ storage_credential_ssm_parameter_list = get_ssm_parameters_list_by_path(str(STORAGE_CREDENTIALS_SSM_PATH) + "/")
210
+
211
+ return list(map(
212
+ lambda ssm_parameter_obj_iter: cast(
213
+ StorageCredentialMappingModel,
214
+ json.loads(ssm_parameter_obj_iter['Value'])
215
+ ),
216
+ storage_credential_ssm_parameter_list
217
+ ))
@@ -1,2 +1,15 @@
1
+ from pathlib import Path
2
+
1
3
  # Set ICAV2 Base url
2
4
  ICAV2_BASE_URL = "https://ica.illumina.com/ica/rest"
5
+
6
+ # Tenant name
7
+ TENANT_NAME = "umccr-prod"
8
+
9
+ # SSM Parameter paths
10
+ SSM_PATH_ROOT = Path("/icav2") / TENANT_NAME
11
+
12
+ # SSM paths for various configurations
13
+ STORAGE_CONFIGURATIONS_SSM_PATH = SSM_PATH_ROOT / "storage-configurations"
14
+ PROJECT_TO_STORAGE_CONFIGURATION_SSM_PATH = SSM_PATH_ROOT / "project-to-storage-configurations"
15
+ STORAGE_CREDENTIALS_SSM_PATH = SSM_PATH_ROOT / "storage-credentials"
@@ -13,7 +13,7 @@ const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
13
13
  * SNS topic.
14
14
  */
15
15
  class MonitoredQueue extends constructs_1.Construct {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.58" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.60" };
17
17
  queue;
18
18
  deadLetterQueue;
19
19
  alarm;
@@ -7,7 +7,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
7
7
  * A construct which represents a named role that a Lambda function can assume.
8
8
  */
9
9
  class NamedLambdaRole extends aws_iam_1.Role {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.58" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.60" };
11
11
  constructor(scope, id, props) {
12
12
  super(scope, id, {
13
13
  assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orcabus/platform-cdk-constructs",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "description": "CDK Package for OrcaBus infrastructure.",
5
5
  "main": "index.ts",
6
6
  "types": "index.d.ts",
@@ -15,7 +15,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
15
15
  * to the provider framework.
16
16
  */
17
17
  class ProviderFunction extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.58" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.60" };
19
19
  _function;
20
20
  _response;
21
21
  constructor(scope, id, props) {
@@ -30,6 +30,7 @@ exports.FILE_MANAGER_BUCKETS = {
30
30
  `data-sharing-artifacts-${deployment_stack_pipeline_1.PROD_ENVIRONMENT.account}-${deployment_stack_pipeline_1.PROD_ENVIRONMENT.region}`,
31
31
  `pipeline-montauk-977251586657-${deployment_stack_pipeline_1.PROD_ENVIRONMENT.region}`,
32
32
  "research-data-550435500918-ap-southeast-2",
33
+ "test-data-503977275616-ap-southeast-2",
33
34
  ],
34
35
  };
35
36
  exports.FILE_MANAGER_CACHE_BUCKETS = {
@@ -47,4 +48,4 @@ exports.FILE_MANAGER_ACCESS_KEY_ARNS = {
47
48
  exports.FILE_MANAGER_INGEST_ROLE = "orcabus-file-manager-ingest-role";
48
49
  exports.FILE_MANAGER_PRESIGN_USER = "orcabus-file-manager-presign-user"; // pragma: allowlist secret
49
50
  exports.FILE_MANAGER_DOMAIN_PREFIX = "file";
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNEVBSXNDO0FBRXRDLDZCQUEyQztBQUMzQyx1Q0FBK0M7QUFFbEMsUUFBQSxvQkFBb0IsR0FBZ0M7SUFDL0QsSUFBSSxFQUFFO1FBQ0osZ0JBQWdCO1FBQ2hCLHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFFLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ3RGLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQy9FLDRCQUE0QjtLQUM3QjtJQUNELEtBQUssRUFBRTtRQUNMLGdCQUFnQjtRQUNoQixxQkFBcUIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1RSxpQ0FBaUMsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUN4RiwwQkFBMEIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtLQUNsRjtJQUNELElBQUksRUFBRTtRQUNKLDZCQUE2QjtRQUM3QixtREFBbUQ7UUFDbkQsZ0RBQWdEO1FBQ2hELHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFFLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ3RGLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQy9FLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDMUQsMkNBQTJDO0tBQzVDO0NBQ0YsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQWdDO0lBQ3JFLElBQUksRUFBRSxDQUFDLDBCQUFxQixDQUFDLElBQUksQ0FBQztJQUNsQyxLQUFLLEVBQUUsQ0FBQywwQkFBcUIsQ0FBQyxLQUFLLENBQUM7SUFDcEMsSUFBSSxFQUFFLENBQUMsMEJBQXFCLENBQUMsSUFBSSxDQUFDO0NBQ25DLENBQUM7QUFFVyxRQUFBLGdDQUFnQyxHQUMzQyxtQ0FBbUMsQ0FBQyxDQUFDLDJCQUEyQjtBQUNsRSxJQUFBLDRCQUFrQixFQUFDLHdDQUFnQyxDQUFDLENBQUM7QUFFeEMsUUFBQSw0QkFBNEIsR0FBOEI7SUFDckUsSUFBSSxFQUFFLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxNQUFNLElBQUksNENBQWdCLENBQUMsT0FBTyxXQUFXLHdDQUFnQyxFQUFFO0lBQ2hJLEtBQUssRUFBRSwwQkFBMEIsNkNBQWlCLENBQUMsTUFBTSxJQUFJLDZDQUFpQixDQUFDLE9BQU8sV0FBVyx3Q0FBZ0MsRUFBRTtJQUNuSSxJQUFJLEVBQUUsMEJBQTBCLDRDQUFnQixDQUFDLE1BQU0sSUFBSSw0Q0FBZ0IsQ0FBQyxPQUFPLFdBQVcsd0NBQWdDLEVBQUU7Q0FDakksQ0FBQztBQUVXLFFBQUEsd0JBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUQsUUFBQSx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQyxDQUFDLDJCQUEyQjtBQUM1RixRQUFBLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIGNvbmZpZyBmb3IgdGhlIEZpbGVNYW5hZ2VyLlxuICovXG5cbmltcG9ydCB7XG4gIEJFVEFfRU5WSVJPTk1FTlQsXG4gIEdBTU1BX0VOVklST05NRU5ULFxuICBQUk9EX0VOVklST05NRU5ULFxufSBmcm9tIFwiLi4vZGVwbG95bWVudC1zdGFjay1waXBlbGluZVwiO1xuaW1wb3J0IHsgU3RhZ2VOYW1lIH0gZnJvbSBcIi4vYWNjb3VudHNcIjtcbmltcG9ydCB7UElQRUxJTkVfQ0FDSEVfQlVDS0VUfSBmcm9tIFwiLi9zM1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVTZWNyZXROYW1lIH0gZnJvbSBcIi4vc2VjcmV0c1wiO1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0JVQ0tFVFM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgQkVUQTogW1xuICAgIFwidW1jY3ItdGVtcC1kZXZcIixcbiAgICBgbnRzbS1maW5nZXJwcmludHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtCRVRBX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIFwiZmlsZW1hbmFnZXItaW52ZW50b3J5LXRlc3RcIixcbiAgXSxcbiAgR0FNTUE6IFtcbiAgICBcInVtY2NyLXRlbXAtc3RnXCIsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtHQU1NQV9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke0dBTU1BX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIGBkYXRhLXNoYXJpbmctYXJ0aWZhY3RzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgXSxcbiAgUFJPRDogW1xuICAgIFwib3JnLnVtY2NyLmRhdGEub25jb2FuYWx5c2VyXCIsXG4gICAgXCJhcmNoaXZlLXByb2QtYW5hbHlzaXMtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gICAgXCJhcmNoaXZlLXByb2QtZmFzdHEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGZhc3RxLW1hbmFnZXItc2VxdWFsaS1vdXRwdXRzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGRhdGEtc2hhcmluZy1hcnRpZmFjdHMtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LSR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgcGlwZWxpbmUtbW9udGF1ay05NzcyNTE1ODY2NTctJHtQUk9EX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIFwicmVzZWFyY2gtZGF0YS01NTA0MzU1MDA5MTgtYXAtc291dGhlYXN0LTJcIixcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfQ0FDSEVfQlVDS0VUUzogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nW10+ID0ge1xuICBCRVRBOiBbUElQRUxJTkVfQ0FDSEVfQlVDS0VULkJFVEFdLFxuICBHQU1NQTogW1BJUEVMSU5FX0NBQ0hFX0JVQ0tFVC5HQU1NQV0sXG4gIFBST0Q6IFtQSVBFTElORV9DQUNIRV9CVUNLRVQuUFJPRF0sXG59O1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVQgPVxuICBcIm9yY2FidXMvZmlsZS1tYW5hZ2VyLXByZXNpZ24tdXNlclwiOyAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbnZhbGlkYXRlU2VjcmV0TmFtZShGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVCk7XG5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfQUNDRVNTX0tFWV9BUk5TOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmc+ID0ge1xuICBCRVRBOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke0JFVEFfRU5WSVJPTk1FTlQucmVnaW9ufToke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH06c2VjcmV0OiR7RklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVR9YCxcbiAgR0FNTUE6IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufToke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9OnNlY3JldDoke0ZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUfWAsXG4gIFBST0Q6IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259OiR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVH1gLFxufTtcblxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9JTkdFU1RfUk9MRSA9IFwib3JjYWJ1cy1maWxlLW1hbmFnZXItaW5nZXN0LXJvbGVcIjtcbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSID0gXCJvcmNhYnVzLWZpbGUtbWFuYWdlci1wcmVzaWduLXVzZXJcIjsgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0RPTUFJTl9QUkVGSVggPSBcImZpbGVcIjtcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNEVBSXNDO0FBRXRDLDZCQUEyQztBQUMzQyx1Q0FBK0M7QUFFbEMsUUFBQSxvQkFBb0IsR0FBZ0M7SUFDL0QsSUFBSSxFQUFFO1FBQ0osZ0JBQWdCO1FBQ2hCLHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFFLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ3RGLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQy9FLDRCQUE0QjtLQUM3QjtJQUNELEtBQUssRUFBRTtRQUNMLGdCQUFnQjtRQUNoQixxQkFBcUIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1RSxpQ0FBaUMsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUN4RiwwQkFBMEIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtLQUNsRjtJQUNELElBQUksRUFBRTtRQUNKLDZCQUE2QjtRQUM3QixtREFBbUQ7UUFDbkQsZ0RBQWdEO1FBQ2hELHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFFLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ3RGLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQy9FLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDMUQsMkNBQTJDO1FBQzNDLHVDQUF1QztLQUN4QztDQUNGLENBQUM7QUFFVyxRQUFBLDBCQUEwQixHQUFnQztJQUNyRSxJQUFJLEVBQUUsQ0FBQywwQkFBcUIsQ0FBQyxJQUFJLENBQUM7SUFDbEMsS0FBSyxFQUFFLENBQUMsMEJBQXFCLENBQUMsS0FBSyxDQUFDO0lBQ3BDLElBQUksRUFBRSxDQUFDLDBCQUFxQixDQUFDLElBQUksQ0FBQztDQUNuQyxDQUFDO0FBRVcsUUFBQSxnQ0FBZ0MsR0FDM0MsbUNBQW1DLENBQUMsQ0FBQywyQkFBMkI7QUFDbEUsSUFBQSw0QkFBa0IsRUFBQyx3Q0FBZ0MsQ0FBQyxDQUFDO0FBRXhDLFFBQUEsNEJBQTRCLEdBQThCO0lBQ3JFLElBQUksRUFBRSwwQkFBMEIsNENBQWdCLENBQUMsTUFBTSxJQUFJLDRDQUFnQixDQUFDLE9BQU8sV0FBVyx3Q0FBZ0MsRUFBRTtJQUNoSSxLQUFLLEVBQUUsMEJBQTBCLDZDQUFpQixDQUFDLE1BQU0sSUFBSSw2Q0FBaUIsQ0FBQyxPQUFPLFdBQVcsd0NBQWdDLEVBQUU7SUFDbkksSUFBSSxFQUFFLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxNQUFNLElBQUksNENBQWdCLENBQUMsT0FBTyxXQUFXLHdDQUFnQyxFQUFFO0NBQ2pJLENBQUM7QUFFVyxRQUFBLHdCQUF3QixHQUFHLGtDQUFrQyxDQUFDO0FBQzlELFFBQUEseUJBQXlCLEdBQUcsbUNBQW1DLENBQUMsQ0FBQywyQkFBMkI7QUFDNUYsUUFBQSwwQkFBMEIsR0FBRyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoYXJlZCBjb25maWcgZm9yIHRoZSBGaWxlTWFuYWdlci5cbiAqL1xuXG5pbXBvcnQge1xuICBCRVRBX0VOVklST05NRU5ULFxuICBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgUFJPRF9FTlZJUk9OTUVOVCxcbn0gZnJvbSBcIi4uL2RlcGxveW1lbnQtc3RhY2stcGlwZWxpbmVcIjtcbmltcG9ydCB7IFN0YWdlTmFtZSB9IGZyb20gXCIuL2FjY291bnRzXCI7XG5pbXBvcnQge1BJUEVMSU5FX0NBQ0hFX0JVQ0tFVH0gZnJvbSBcIi4vczNcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSB9IGZyb20gXCIuL3NlY3JldHNcIjtcblxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9CVUNLRVRTOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmdbXT4gPSB7XG4gIEJFVEE6IFtcbiAgICBcInVtY2NyLXRlbXAtZGV2XCIsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7QkVUQV9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke0JFVEFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGZhc3RxLW1hbmFnZXItc2VxdWFsaS1vdXRwdXRzLSR7QkVUQV9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke0JFVEFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGRhdGEtc2hhcmluZy1hcnRpZmFjdHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBcImZpbGVtYW5hZ2VyLWludmVudG9yeS10ZXN0XCIsXG4gIF0sXG4gIEdBTU1BOiBbXG4gICAgXCJ1bWNjci10ZW1wLXN0Z1wiLFxuICAgIGBudHNtLWZpbmdlcnByaW50cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LSR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGZhc3RxLW1hbmFnZXItc2VxdWFsaS1vdXRwdXRzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LSR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gIF0sXG4gIFBST0Q6IFtcbiAgICBcIm9yZy51bWNjci5kYXRhLm9uY29hbmFseXNlclwiLFxuICAgIFwiYXJjaGl2ZS1wcm9kLWFuYWx5c2lzLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiLFxuICAgIFwiYXJjaGl2ZS1wcm9kLWZhc3RxLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiLFxuICAgIGBudHNtLWZpbmdlcnByaW50cy0ke1BST0RfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtQUk9EX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIGBmYXN0cS1tYW5hZ2VyLXNlcXVhbGktb3V0cHV0cy0ke1BST0RfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtQUk9EX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIGBkYXRhLXNoYXJpbmctYXJ0aWZhY3RzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYHBpcGVsaW5lLW1vbnRhdWstOTc3MjUxNTg2NjU3LSR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBcInJlc2VhcmNoLWRhdGEtNTUwNDM1NTAwOTE4LWFwLXNvdXRoZWFzdC0yXCIsXG4gICAgXCJ0ZXN0LWRhdGEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gIF0sXG59O1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0NBQ0hFX0JVQ0tFVFM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgQkVUQTogW1BJUEVMSU5FX0NBQ0hFX0JVQ0tFVC5CRVRBXSxcbiAgR0FNTUE6IFtQSVBFTElORV9DQUNIRV9CVUNLRVQuR0FNTUFdLFxuICBQUk9EOiBbUElQRUxJTkVfQ0FDSEVfQlVDS0VULlBST0RdLFxufTtcblxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUID1cbiAgXCJvcmNhYnVzL2ZpbGUtbWFuYWdlci1wcmVzaWduLXVzZXJcIjsgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG52YWxpZGF0ZVNlY3JldE5hbWUoRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVQpO1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0FDQ0VTU19LRVlfQVJOUzogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtCRVRBX0VOVklST05NRU5ULnJlZ2lvbn06JHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9OnNlY3JldDoke0ZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUfWAsXG4gIEdBTU1BOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke0dBTU1BX0VOVklST05NRU5ULnJlZ2lvbn06JHtHQU1NQV9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVH1gLFxuICBQUk9EOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufToke1BST0RfRU5WSVJPTk1FTlQuYWNjb3VudH06c2VjcmV0OiR7RklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVR9YCxcbn07XG5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfSU5HRVNUX1JPTEUgPSBcIm9yY2FidXMtZmlsZS1tYW5hZ2VyLWluZ2VzdC1yb2xlXCI7XG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUiA9IFwib3JjYWJ1cy1maWxlLW1hbmFnZXItcHJlc2lnbi11c2VyXCI7IC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9ET01BSU5fUFJFRklYID0gXCJmaWxlXCI7XG4iXX0=
@@ -23,7 +23,7 @@ exports.VPC_LOOKUP_PROPS = {
23
23
  * Helper for looking up the shared OrcaBus VPC.
24
24
  */
25
25
  class OrcaBusVpc {
26
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.58" };
26
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.60" };
27
27
  /**
28
28
  * The shared VPC that is used by OrcaBus.
29
29
  * @param scope
@@ -42,7 +42,7 @@ exports.SHARED_SECURITY_GROUP_NAME = "OrcaBusSharedComputeSecurityGroup";
42
42
  * Helper for looking up the shared compute security group by name.
43
43
  */
44
44
  class OrcaBusSharedComputeSecurityGroup {
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.58" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.60" };
46
46
  /**
47
47
  * The shared security group that is used by compute resources to access the database.
48
48
  * @param scope
@@ -11,7 +11,7 @@ exports.SLACK_ALERTS_SNS_TOPIC = "AwsChatBotTopic-alerts";
11
11
  * A helper class to construct the arn for the slack SNS topic.
12
12
  */
13
13
  class SlackAlerts {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.58" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.60" };
15
15
  /**
16
16
  * Format the ARN for the slack alerts SNS topic for the current stack.
17
17
  * @param stack