@orcabus/platform-cdk-constructs 0.0.96 → 0.0.98

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.
Files changed (27) hide show
  1. package/.jsii +2 -2
  2. package/api-gateway/api-gateway.js +1 -1
  3. package/deployment-stack-pipeline/artifact-bucket.js +1 -1
  4. package/deployment-stack-pipeline/pipeline.js +1 -1
  5. package/dynamodb/index.js +2 -2
  6. package/ecs/index.js +1 -1
  7. package/eventbridge-rules/sfn-slack-notification.js +1 -1
  8. package/lambda/index.js +1 -1
  9. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/__init__.py +5 -1
  10. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/job_helpers.py +25 -1
  11. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/fastq/update_helpers.py +18 -0
  12. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/filemanager/file_helpers.py +6 -4
  13. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/update_helpers.py +5 -2
  14. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/utils/miscell.py +6 -1
  15. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/workflow/__init__.py +6 -2
  16. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/workflow/metadata_helpers.py +121 -2
  17. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/workflow/payload_helpers.py +2 -2
  18. package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/workflow/query_helpers.py +53 -16
  19. package/monitored-queue/index.js +1 -1
  20. package/named-lambda-role/index.js +1 -1
  21. package/package.json +1 -1
  22. package/provider-function/index.js +1 -1
  23. package/shared-config/file-manager.d.ts +1 -0
  24. package/shared-config/file-manager.js +5 -3
  25. package/shared-config/networking.js +2 -2
  26. package/shared-config/s3.js +1 -1
  27. package/shared-config/slack.js +1 -1
package/.jsii CHANGED
@@ -7163,6 +7163,6 @@
7163
7163
  "symbolId": "shared-config/slack:SlackAlerts"
7164
7164
  }
7165
7165
  },
7166
- "version": "0.0.96",
7167
- "fingerprint": "Re6bzpleDW744afYQA2WMtPW+LFjfQUMhVTC1NUS/cM="
7166
+ "version": "0.0.98",
7167
+ "fingerprint": "rvUu4EFizvs1v4SixWCFt+FunEo4NBzVMRNVRUmnt78="
7168
7168
  }
@@ -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.96" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.98" };
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.96" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.98" };
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.96" };
35
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.98" };
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.96" };
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.98" };
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.96" };
78
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.98" };
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.96" };
58
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.98" };
59
59
  cluster;
60
60
  taskDefinition;
61
61
  taskExecutionRole;
@@ -17,7 +17,7 @@ var SfnEventStatus;
17
17
  SfnEventStatus["ABORTED"] = "ABORTED";
18
18
  })(SfnEventStatus || (exports.SfnEventStatus = SfnEventStatus = {}));
19
19
  class SfnSlackNotification extends constructs_1.Construct {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotification", version: "0.0.96" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotification", version: "0.0.98" };
21
21
  rule;
22
22
  constructor(scope, id, props) {
23
23
  super(scope, id);
package/lambda/index.js CHANGED
@@ -57,7 +57,7 @@ function getPythonUvDockerImage() {
57
57
  return aws_cdk_lib_1.DockerImage.fromBuild(path_1.default.join(__dirname, 'build_python'));
58
58
  }
59
59
  class PythonUvFunction extends aws_lambda_python_alpha_1.PythonFunction {
60
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.96" };
60
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.98" };
61
61
  // Class constructs, to be used for caching the layers
62
62
  // This means that if there are multiple lambdas throughout the stack
63
63
  // They will all use the same layer
@@ -83,7 +83,8 @@ from .job_helpers import (
83
83
  run_qc_stats,
84
84
  run_ntsm,
85
85
  run_file_compression_stats,
86
- run_read_count_stats
86
+ run_read_count_stats,
87
+ run_extract_fingerprint
87
88
  )
88
89
 
89
90
  # Query
@@ -114,6 +115,7 @@ from .update_helpers import (
114
115
  add_file_compression_information,
115
116
  add_ntsm_storage_object,
116
117
  add_read_set,
118
+ add_somalier_fingerprint,
117
119
  detach_read_set,
118
120
  validate_fastq,
119
121
  invalidate_fastq,
@@ -156,6 +158,7 @@ __all__ = [
156
158
  "run_ntsm",
157
159
  "run_file_compression_stats",
158
160
  "run_read_count_stats",
161
+ "run_extract_fingerprint",
159
162
  # Query
160
163
  "get_fastq",
161
164
  "get_fastq_set",
@@ -184,6 +187,7 @@ __all__ = [
184
187
  "detach_read_set",
185
188
  "validate_fastq",
186
189
  "invalidate_fastq",
190
+ "add_somalier_fingerprint",
187
191
  "link_fastq_list_row_to_fastq_set",
188
192
  "link_fastq_to_fastq_set",
189
193
  "unlink_fastq_list_row_from_fastq_set",
@@ -7,11 +7,13 @@ Update helpers for the update script.
7
7
  - run_ntsm
8
8
  - run_file_compression_information
9
9
  """
10
+ from typing import Dict, Any
11
+
10
12
  # Standard imports
11
13
 
12
14
  # Local imports
13
15
  from . import fastq_patch_request
14
- from .globals import FASTQ_ENDPOINT
16
+ from .globals import FASTQ_ENDPOINT, FASTQ_SET_ENDPOINT
15
17
  from .models import Job
16
18
 
17
19
 
@@ -63,3 +65,25 @@ def run_read_count_stats(fastq_id: str) -> Job:
63
65
  f"{FASTQ_ENDPOINT}/{fastq_id}:runReadCountInformation"
64
66
  )
65
67
  )
68
+
69
+ def run_extract_fingerprint(
70
+ fastq_set_id: str,
71
+ reference_name: str,
72
+ bam_uri: str
73
+ ) -> Dict[str, Any]:
74
+ """
75
+ Run extract fingerprint for a fastq_set_id.
76
+
77
+ :param bam_uri:
78
+ :param reference_name:
79
+ :param fastq_set_id: Fastq set id
80
+ """
81
+ return fastq_patch_request(
82
+ f"{FASTQ_SET_ENDPOINT}/{fastq_set_id}:runExtractFingerprint",
83
+ params={
84
+ "referenceName": reference_name
85
+ },
86
+ json_data={
87
+ "s3Uri": bam_uri
88
+ }
89
+ )
@@ -237,3 +237,21 @@ def set_is_not_current_fastq_set(fastq_set_id: str) -> FastqSet:
237
237
  return fastq_patch_request(
238
238
  f"{FASTQ_SET_ENDPOINT}/{fastq_set_id}/notCurrentFastqSet"
239
239
  )
240
+
241
+
242
+ def add_somalier_fingerprint(
243
+ fastq_set_id: str,
244
+ s3_uri: str
245
+ ) -> FastqSet:
246
+ """
247
+ Add a Somalier storage object to a fastq set id.
248
+
249
+ :param fastq_set_id: Fastq str
250
+ :param s3_uri: Somalier s3 uri
251
+ """
252
+ return fastq_patch_request(
253
+ f"{FASTQ_SET_ENDPOINT}/{fastq_set_id}:addFingerprint",
254
+ json_data={
255
+ "s3Uri": s3_uri
256
+ }
257
+ )
@@ -104,7 +104,7 @@ def get_file_object_from_ingest_id(ingest_id: str, **kwargs) -> FileObject:
104
104
  file_objects_list.sort(
105
105
  key=lambda file_obj_iter_: (
106
106
  StorageClassPriority[file_obj_iter_['storageClass']],
107
- -datetime.fromisoformat(file_obj_iter_['eventTime']).timestamp()
107
+ -datetime.fromisoformat(file_obj_iter_['lastModifiedDate']).timestamp()
108
108
  )
109
109
  )
110
110
 
@@ -157,7 +157,7 @@ def get_portal_run_id_root_prefix(portal_run_id: str) -> str:
157
157
 
158
158
  # Sort by most recent output
159
159
  all_portal_run_id_files.sort(
160
- key=lambda file_iter_: datetime.fromisoformat(file_iter_['eventTime']).timestamp(),
160
+ key=lambda file_iter_: datetime.fromisoformat(file_iter_['lastModifiedDate']).timestamp(),
161
161
  reverse=True
162
162
  )
163
163
 
@@ -277,7 +277,9 @@ def get_presigned_url_expiry(s3_presigned_url: str) -> datetime:
277
277
  return (creation_time + expiry_ext).astimezone(tz=timezone.utc)
278
278
 
279
279
 
280
- def get_s3_objs_from_ingest_ids_map(ingest_ids: List[str], **kwargs) -> List[Dict[str, Union[FileObject, str]]]:
280
+ def get_s3_objs_from_ingest_ids_map(
281
+ ingest_ids: List[str], **kwargs
282
+ ) -> List[Dict[str, Union[FileObject, str]]]:
281
283
  # Check if the list is empty
282
284
  if len(ingest_ids) == 0:
283
285
  return []
@@ -322,7 +324,7 @@ def get_s3_objs_from_ingest_ids_map(ingest_ids: List[str], **kwargs) -> List[Dic
322
324
  s3_objects_match.sort(
323
325
  key=lambda s3_object_iter_: (
324
326
  StorageClassPriority[s3_object_iter_['fileObject']['storageClass']],
325
- -datetime.fromisoformat(s3_object_iter_['fileObject']['eventTime']).timestamp()
327
+ -datetime.fromisoformat(s3_object_iter_['fileObject']['lastModifiedDate']).timestamp()
326
328
  )
327
329
  )
328
330
 
@@ -17,9 +17,12 @@ def update_icav2_wes_analysis_status(
17
17
  # Confirm param keys are valid
18
18
  for key in kwargs.keys():
19
19
  if key not in WESPatchRequest.__annotations__:
20
- raise ValueError(f"Invalid parameter key: {key}. Valid keys are: {', '.join(WESPatchRequest.__annotations__.keys())}")
21
-
20
+ raise ValueError(
21
+ f"Invalid parameter key: {key}. "
22
+ f"Valid keys are: {', '.join(WESPatchRequest.__annotations__.keys())}"
23
+ )
22
24
 
25
+ # Return the patch request
23
26
  return icav2_wes_patch_request(
24
27
  f"{ANALYSES_ENDPOINT}/{icav2_wes_orcabus_id}",
25
28
  json_data=dict(filter(
@@ -1,6 +1,11 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # Imports
4
+ from typing import Tuple
1
5
  from urllib.parse import urlparse
2
6
 
3
- def get_bucket_key_pair_from_uri(s3_uri: str) -> (str, str):
7
+
8
+ def get_bucket_key_pair_from_uri(s3_uri: str) -> Tuple[str, str]:
4
9
  """
5
10
  Get the bucket and key from an s3 uri
6
11
  :param s3_uri:
@@ -39,7 +39,8 @@ from .create_helpers import (
39
39
 
40
40
  from .metadata_helpers import (
41
41
  get_workflows_from_library_id,
42
- get_workflows_from_library_id_list
42
+ get_workflows_from_library_id_list,
43
+ get_workflow_runs_from_metadata,
43
44
  )
44
45
 
45
46
  from .query_helpers import (
@@ -47,6 +48,7 @@ from .query_helpers import (
47
48
  get_workflows_from_analysis_run_id,
48
49
  list_workflow_runs_by_workflow_name,
49
50
  list_workflow_runs_from_analysis_run_id,
51
+ list_workflow_runs,
50
52
  )
51
53
 
52
54
  from .workflow_helpers import (
@@ -75,12 +77,14 @@ __all__ = [
75
77
  # Metadata
76
78
  "get_workflows_from_library_id",
77
79
  "get_workflows_from_library_id_list",
80
+ "get_workflow_runs_from_metadata",
78
81
  # Query
79
82
  # Deprecated
80
83
  "get_workflow_by_workflow_name",
81
84
  "get_workflows_from_analysis_run_id",
82
- # New
83
85
  "list_workflow_runs_by_workflow_name",
86
+ # New
87
+ "list_workflow_runs",
84
88
  "list_workflow_runs_from_analysis_run_id",
85
89
  # Payload
86
90
  "get_payload",
@@ -5,7 +5,7 @@ Get workflows from library id
5
5
  """
6
6
 
7
7
  # Standard imports
8
- from typing import List
8
+ from typing import List, Optional
9
9
 
10
10
  # Local imports
11
11
  from . import get_workflow_request_response_results
@@ -57,4 +57,123 @@ def get_workflows_from_library_id_list(library_id_list: List[str]) -> List[Workf
57
57
  workflows_for_library
58
58
  ))
59
59
 
60
- return all_workflows_intersected
60
+ return all_workflows_intersected
61
+
62
+
63
+ def get_workflows_from_rgid_list(
64
+ rgid_list: List[str]
65
+ ) -> List[WorkflowRunDetail]:
66
+ """
67
+ Use the query libraries__rgid to get workflows from a list of rgids
68
+ However, we only collect the workflows that are associated will all rgids in the list,
69
+ This may be useful if given a tumor normal pair and you want to find all workflows associated
70
+ with that specific tumor normal pair
71
+ :param rgid_list:
72
+ :return:
73
+ """
74
+ from ..fastq import get_fastq_by_rgid
75
+
76
+ fastq_id_list = list(map(
77
+ lambda rgid_: get_fastq_by_rgid(rgid_)['id'],
78
+ rgid_list
79
+ ))
80
+
81
+ if len(fastq_id_list) < 1:
82
+ return []
83
+
84
+ all_workflows_intersected = get_workflow_request_response_results(
85
+ WORKFLOW_RUN_ENDPOINT,
86
+ params={
87
+ "readsets": fastq_id_list[0]
88
+ }
89
+ )
90
+
91
+ if len(fastq_id_list) == 1:
92
+ return all_workflows_intersected
93
+
94
+ for fastq_id in fastq_id_list[1:]:
95
+ workflows_for_fastq_id = get_workflow_request_response_results(
96
+ WORKFLOW_RUN_ENDPOINT,
97
+ params={
98
+ "readsets": fastq_id
99
+ }
100
+ )
101
+ all_workflows_intersected = list(filter(
102
+ lambda workflow_iter_: workflow_iter_['orcabusId'] in list(map(
103
+ lambda all_workflows_iter_: all_workflows_iter_['orcabusId'],
104
+ all_workflows_intersected
105
+ )),
106
+ workflows_for_fastq_id
107
+ ))
108
+
109
+ return all_workflows_intersected
110
+
111
+
112
+ def get_workflow_runs_from_metadata(
113
+ workflow_name: str,
114
+ workflow_version: Optional[str] = None,
115
+ code_version: Optional[str] = None,
116
+ analysis_run_id: Optional[str] = None,
117
+ current_status: Optional[str] = None,
118
+ library_id_list: Optional[List[str]] = None,
119
+ rgid_list: Optional[List[str]] = None,
120
+ ) -> List[WorkflowRunDetail]:
121
+ """
122
+ Get workflow runs from metadata such as library ids or rgids
123
+ but allow filtering on standard workflow run metadata such as workflow name, version, analysis run id, and current status
124
+ :param workflow_name:
125
+ :param workflow_version:
126
+ :param code_version:
127
+ :param analysis_run_id:
128
+ :param current_status:
129
+ :param library_id_list:
130
+ :param rgid_list:
131
+ :return:
132
+ """
133
+
134
+ # Local relative imports
135
+ from .query_helpers import (
136
+ list_workflow_runs
137
+ )
138
+
139
+ # Get all workflows for a given workflow name and version
140
+ workflow_run_list = list_workflow_runs(
141
+ workflow_name=workflow_name,
142
+ workflow_version=workflow_version,
143
+ code_version=code_version,
144
+ analysis_run_id=analysis_run_id,
145
+ current_status=current_status,
146
+ )
147
+
148
+ # Filter by library id list if provided
149
+ if library_id_list is not None:
150
+ workflow_library_id_list = get_workflows_from_library_id_list(
151
+ library_id_list=library_id_list,
152
+ )
153
+ workflow_run_list = list(filter(
154
+ lambda workflow_run_iter_: (
155
+ workflow_run_iter_['orcabusId'] in list(map(
156
+ lambda workflow_iter_: workflow_iter_['orcabusId'],
157
+ workflow_library_id_list
158
+ ))
159
+ ),
160
+ workflow_run_list
161
+ ))
162
+
163
+ # Filter by rgid list if provided
164
+ if rgid_list is not None:
165
+ workflow_rgid_list = get_workflows_from_rgid_list(
166
+ rgid_list=rgid_list,
167
+ )
168
+ workflow_run_list = list(filter(
169
+ lambda workflow_run_iter_: (
170
+ workflow_run_iter_['orcabusId'] in list(map(
171
+ lambda workflow_iter_: workflow_iter_['orcabusId'],
172
+ workflow_rgid_list
173
+ ))
174
+ ),
175
+ workflow_run_list
176
+ ))
177
+
178
+ # Return the filtered list of workflow runs
179
+ return workflow_run_list
@@ -13,14 +13,14 @@ from .globals import PAYLOAD_ENDPOINT
13
13
  from .models import Payload
14
14
 
15
15
 
16
- def get_payload(payload_id: str) -> Payload:
16
+ def get_payload(payload_id: str) -> Optional[Payload]:
17
17
  """
18
18
  Get payload from the payload id
19
19
  :param payload_id:
20
20
  :return:
21
21
  """
22
22
  # Get payload
23
- return Payload(**get_workflow_request(f"{PAYLOAD_ENDPOINT}/{payload_id}"))
23
+ return cast(Payload, get_workflow_request(f"{PAYLOAD_ENDPOINT}/{payload_id}"))
24
24
 
25
25
 
26
26
  def get_payload_from_state_orcabus_id(workflow_run_orcabus_id: str, state_orcabus_id: str) -> Optional[Payload]:
@@ -5,7 +5,7 @@ Get workflows from library id
5
5
  """
6
6
  # Standard imports
7
7
  import warnings
8
- from typing import List
8
+ from typing import List, Optional
9
9
 
10
10
  # Local imports
11
11
  from . import get_workflow_request_response_results
@@ -13,20 +13,37 @@ from .globals import WORKFLOW_RUN_ENDPOINT
13
13
  from .models import WorkflowRunDetail
14
14
 
15
15
 
16
- def list_workflow_runs_from_analysis_run_id(analysis_run_id: str) -> List[WorkflowRunDetail]:
16
+ def list_workflow_runs(
17
+ workflow_name: Optional[str] = None,
18
+ workflow_version: Optional[str] = None,
19
+ code_version: Optional[str] = None,
20
+ current_status: Optional[str] = None,
21
+ analysis_run_id: Optional[str] = None,
22
+ ) -> List[WorkflowRunDetail]:
17
23
  """
18
- Use the query analysisRuns__analysisRunId to get workflows from an analysis run id
19
- :param analysis_run_id:
24
+ Use the query name to get workflows
25
+ :param workflow_name:
26
+ :param workflow_version:
27
+ :param code_version:
28
+ :param current_status:
20
29
  :return:
21
30
  """
22
31
  return get_workflow_request_response_results(
23
32
  WORKFLOW_RUN_ENDPOINT,
24
- params={
25
- "analysisRun__orcabusId": analysis_run_id
26
- }
33
+ params=dict(filter(
34
+ lambda item: item[1] is not None,
35
+ {
36
+ "workflow__name": workflow_name,
37
+ "workflow__version": workflow_version,
38
+ "workflow__codeVersion": code_version,
39
+ "currentState__status": current_status,
40
+ "analysisRun__orcabusId": analysis_run_id
41
+ }.items()
42
+ ))
27
43
  )
28
44
 
29
45
 
46
+ # Deprecated
30
47
  def list_workflow_runs_by_workflow_name(
31
48
  workflow_name: str,
32
49
  ) -> List[WorkflowRunDetail]:
@@ -35,27 +52,47 @@ def list_workflow_runs_by_workflow_name(
35
52
  :param workflow_name:
36
53
  :return:
37
54
  """
38
-
55
+ warnings.warn(DeprecationWarning(
56
+ "This function is deprecated, "
57
+ "please use list_workflow_runs instead"
58
+ ))
39
59
  return get_workflow_request_response_results(
40
60
  WORKFLOW_RUN_ENDPOINT,
41
- params={
42
- "workflow__name": workflow_name
43
- }
61
+ params=dict(filter(
62
+ lambda item: item[1] is not None,
63
+ {
64
+ "workflow__name": workflow_name,
65
+ }.items()
66
+ ))
44
67
  )
45
68
 
46
69
 
47
- # Deprecated
48
70
  def get_workflow_by_workflow_name(workflow_name: str) -> List[WorkflowRunDetail]:
49
71
  warnings.warn(DeprecationWarning(
50
72
  "This function is deprecated, "
51
- "please use list_workflow_runs_by_workflow_name instead"
73
+ "please use list_workflow_runs(workflow_name=workflow_name) instead"
52
74
  ))
53
- return list_workflow_runs_by_workflow_name(workflow_name)
75
+ return list_workflow_runs(workflow_name=workflow_name)
54
76
 
55
77
 
56
78
  def get_workflows_from_analysis_run_id(analysis_run_id: str) -> List[WorkflowRunDetail]:
57
79
  warnings.warn(DeprecationWarning(
58
80
  "This function is deprecated, "
59
- "please use list_workflow_runs_from_analysis_run_id instead"
81
+ "please use list_workflow_runs(analysis_run_id=analysis_run_id) instead"
60
82
  ))
61
- return list_workflow_runs_from_analysis_run_id(analysis_run_id)
83
+ return list_workflow_runs(analysis_run_id=analysis_run_id)
84
+
85
+
86
+ def list_workflow_runs_from_analysis_run_id(analysis_run_id: str) -> List[WorkflowRunDetail]:
87
+ """
88
+ Use the query analysisRuns__analysisRunId to get workflows from an analysis run id
89
+ :param analysis_run_id:
90
+ :return:
91
+ """
92
+ warnings.warn(DeprecationWarning(
93
+ "This function is deprecated, "
94
+ "please use list_workflow_runs(analysis_run_id=analysis_run_id) instead"
95
+ ))
96
+ return list_workflow_runs(
97
+ analysis_run_id=analysis_run_id
98
+ )
@@ -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.96" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.98" };
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.96" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.98" };
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.96",
3
+ "version": "0.0.98",
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.96" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.98" };
19
19
  _function;
20
20
  _response;
21
21
  constructor(scope, id, props) {
@@ -2,6 +2,7 @@
2
2
  * Shared config for the FileManager.
3
3
  */
4
4
  import { StageName } from "./accounts";
5
+ export declare const FILE_MANAGER_INVENTORY_BUCKET = "filemanager-inventory-test";
5
6
  export declare const FILE_MANAGER_BUCKETS: Record<StageName, string[]>;
6
7
  export declare const FILE_MANAGER_CACHE_BUCKETS: Record<StageName, string[]>;
7
8
  export declare const FILE_MANAGER_CROSS_ACCOUNT_BUCKETS: string[];
@@ -3,18 +3,20 @@
3
3
  * Shared config for the FileManager.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FILE_MANAGER_DOMAIN_PREFIX = exports.FILE_MANAGER_PRESIGN_USER = exports.FILE_MANAGER_INGEST_ROLE = exports.FILE_MANAGER_ACCESS_KEY_ARNS = exports.FILE_MANAGER_PRESIGN_USER_SECRET = exports.FILE_MANAGER_CROSS_ACCOUNT_BUCKETS = exports.FILE_MANAGER_CACHE_BUCKETS = exports.FILE_MANAGER_BUCKETS = void 0;
6
+ exports.FILE_MANAGER_DOMAIN_PREFIX = exports.FILE_MANAGER_PRESIGN_USER = exports.FILE_MANAGER_INGEST_ROLE = exports.FILE_MANAGER_ACCESS_KEY_ARNS = exports.FILE_MANAGER_PRESIGN_USER_SECRET = exports.FILE_MANAGER_CROSS_ACCOUNT_BUCKETS = exports.FILE_MANAGER_CACHE_BUCKETS = exports.FILE_MANAGER_BUCKETS = exports.FILE_MANAGER_INVENTORY_BUCKET = void 0;
7
7
  const deployment_stack_pipeline_1 = require("../deployment-stack-pipeline");
8
8
  const s3_1 = require("./s3");
9
9
  const secrets_1 = require("./secrets");
10
+ // The inventory bucket used for testing filemanager.
11
+ exports.FILE_MANAGER_INVENTORY_BUCKET = "filemanager-inventory-test";
10
12
  // Regular buckets where all data is available and ingested.
11
13
  exports.FILE_MANAGER_BUCKETS = {
12
14
  BETA: [
13
15
  s3_1.ONCOANALYSER_BUCKET.BETA,
16
+ exports.FILE_MANAGER_INVENTORY_BUCKET,
14
17
  `ntsm-fingerprints-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.region}`,
15
18
  `fastq-manager-sequali-outputs-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.region}`,
16
19
  `data-sharing-artifacts-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.region}`,
17
- "filemanager-inventory-test",
18
20
  ],
19
21
  GAMMA: [
20
22
  s3_1.ONCOANALYSER_BUCKET.GAMMA,
@@ -57,4 +59,4 @@ exports.FILE_MANAGER_ACCESS_KEY_ARNS = {
57
59
  exports.FILE_MANAGER_INGEST_ROLE = "orcabus-file-manager-ingest-role";
58
60
  exports.FILE_MANAGER_PRESIGN_USER = "orcabus-file-manager-presign-user"; // pragma: allowlist secret
59
61
  exports.FILE_MANAGER_DOMAIN_PREFIX = "file";
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNEVBSXNDO0FBRXRDLDZCQUErRztBQUMvRyx1Q0FBK0M7QUFFL0MsNERBQTREO0FBQy9DLFFBQUEsb0JBQW9CLEdBQWdDO0lBQy9ELElBQUksRUFBRTtRQUNKLHdCQUFtQixDQUFDLElBQUk7UUFDeEIscUJBQXFCLDRDQUFnQixDQUFDLE9BQU8sSUFBSSw0Q0FBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDMUUsaUNBQWlDLDRDQUFnQixDQUFDLE9BQU8sSUFBSSw0Q0FBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDdEYsMEJBQTBCLDRDQUFnQixDQUFDLE9BQU8sSUFBSSw0Q0FBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDL0UsNEJBQTRCO0tBQzdCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsd0JBQW1CLENBQUMsS0FBSztRQUN6QixxQkFBcUIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1RSxpQ0FBaUMsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUN4RiwwQkFBMEIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtLQUNsRjtJQUNELElBQUksRUFBRTtRQUNKLHdCQUFtQixDQUFDLElBQUk7UUFDeEIsNEJBQXVCO1FBQ3ZCLHlCQUFvQjtRQUNwQixxQkFBcUIsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUMxRSxpQ0FBaUMsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUN0RiwwQkFBMEIsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUMvRSxpQ0FBaUMsNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFELDJDQUEyQztRQUMzQywwQ0FBMEM7UUFDMUMsMENBQTBDO1FBQzFDLDBDQUEwQztLQUMzQztDQUNGLENBQUM7QUFFRixzRkFBc0Y7QUFDekUsUUFBQSwwQkFBMEIsR0FBZ0M7SUFDckUsSUFBSSxFQUFFLENBQUMsMEJBQXFCLENBQUMsSUFBSSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxDQUFDLDBCQUFxQixDQUFDLEtBQUssQ0FBQztJQUNwQyxJQUFJLEVBQUUsQ0FBQywwQkFBcUIsQ0FBQyxJQUFJLENBQUM7Q0FDbkMsQ0FBQztBQUVGLHdHQUF3RztBQUN4Ryx1REFBdUQ7QUFDMUMsUUFBQSxrQ0FBa0MsR0FBYTtJQUN4RCx1Q0FBdUM7Q0FDMUMsQ0FBQztBQUVXLFFBQUEsZ0NBQWdDLEdBQzNDLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCO0FBQ2xFLElBQUEsNEJBQWtCLEVBQUMsd0NBQWdDLENBQUMsQ0FBQztBQUV4QyxRQUFBLDRCQUE0QixHQUE4QjtJQUNyRSxJQUFJLEVBQUUsMEJBQTBCLDRDQUFnQixDQUFDLE1BQU0sSUFBSSw0Q0FBZ0IsQ0FBQyxPQUFPLFdBQVcsd0NBQWdDLEVBQUU7SUFDaEksS0FBSyxFQUFFLDBCQUEwQiw2Q0FBaUIsQ0FBQyxNQUFNLElBQUksNkNBQWlCLENBQUMsT0FBTyxXQUFXLHdDQUFnQyxFQUFFO0lBQ25JLElBQUksRUFBRSwwQkFBMEIsNENBQWdCLENBQUMsTUFBTSxJQUFJLDRDQUFnQixDQUFDLE9BQU8sV0FBVyx3Q0FBZ0MsRUFBRTtDQUNqSSxDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RCxRQUFBLHlCQUF5QixHQUFHLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCO0FBQzVGLFFBQUEsMEJBQTBCLEdBQUcsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uZmlnIGZvciB0aGUgRmlsZU1hbmFnZXIuXG4gKi9cblxuaW1wb3J0IHtcbiAgQkVUQV9FTlZJUk9OTUVOVCxcbiAgR0FNTUFfRU5WSVJPTk1FTlQsXG4gIFBST0RfRU5WSVJPTk1FTlQsXG59IGZyb20gXCIuLi9kZXBsb3ltZW50LXN0YWNrLXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBTdGFnZU5hbWUgfSBmcm9tIFwiLi9hY2NvdW50c1wiO1xuaW1wb3J0IHtBTkFMWVNJU19BUkNISVZFX0JVQ0tFVCwgRkFTVFFfQVJDSElWRV9CVUNLRVQsIE9OQ09BTkFMWVNFUl9CVUNLRVQsIFBJUEVMSU5FX0NBQ0hFX0JVQ0tFVH0gZnJvbSBcIi4vczNcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSB9IGZyb20gXCIuL3NlY3JldHNcIjtcblxuLy8gUmVndWxhciBidWNrZXRzIHdoZXJlIGFsbCBkYXRhIGlzIGF2YWlsYWJsZSBhbmQgaW5nZXN0ZWQuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0JVQ0tFVFM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgQkVUQTogW1xuICAgIE9OQ09BTkFMWVNFUl9CVUNLRVQuQkVUQSxcbiAgICBgbnRzbS1maW5nZXJwcmludHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtCRVRBX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIFwiZmlsZW1hbmFnZXItaW52ZW50b3J5LXRlc3RcIixcbiAgXSxcbiAgR0FNTUE6IFtcbiAgICBPTkNPQU5BTFlTRVJfQlVDS0VULkdBTU1BLFxuICAgIGBudHNtLWZpbmdlcnByaW50cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LSR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGZhc3RxLW1hbmFnZXItc2VxdWFsaS1vdXRwdXRzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LSR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gIF0sXG4gIFBST0Q6IFtcbiAgICBPTkNPQU5BTFlTRVJfQlVDS0VULlBST0QsXG4gICAgQU5BTFlTSVNfQVJDSElWRV9CVUNLRVQsXG4gICAgRkFTVFFfQVJDSElWRV9CVUNLRVQsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGZhc3RxLW1hbmFnZXItc2VxdWFsaS1vdXRwdXRzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgYGRhdGEtc2hhcmluZy1hcnRpZmFjdHMtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LSR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgcGlwZWxpbmUtbW9udGF1ay05NzcyNTE1ODY2NTctJHtQUk9EX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIFwicmVzZWFyY2gtZGF0YS01NTA0MzU1MDA5MTgtYXAtc291dGhlYXN0LTJcIixcbiAgICBcInByb2plY3QtZGF0YS04ODk1MjIwNTA0MzktYXAtc291dGhlYXN0LTJcIixcbiAgICBcInByb2plY3QtZGF0YS00OTEwODU0MTUzOTgtYXAtc291dGhlYXN0LTJcIixcbiAgICBcInByb2plY3QtZGF0YS0wNzE3ODQ0NDU4NzItYXAtc291dGhlYXN0LTJcIixcbiAgXSxcbn07XG5cbi8vIENhY2hlIGJ1Y2tldHMgd2hlcmUgdGhlIGBieW9iLWljYXYyLyovY2FjaGUvKmAgcGF0dGVybiBpcyBpZ25vcmVkIGZvciB0aGUgaW5nZXN0ZXIuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0NBQ0hFX0JVQ0tFVFM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgQkVUQTogW1BJUEVMSU5FX0NBQ0hFX0JVQ0tFVC5CRVRBXSxcbiAgR0FNTUE6IFtQSVBFTElORV9DQUNIRV9CVUNLRVQuR0FNTUFdLFxuICBQUk9EOiBbUElQRUxJTkVfQ0FDSEVfQlVDS0VULlBST0RdLFxufTtcblxuLy8gQ3Jvc3MgYWNjb3VudCBidWNrZXRzIHdoZXJlIHRoZSBkZXYvc3RnL3Byb2QgZmlsZW1hbmFnZXIgaW5zdGFuY2VzIHNob3VsZCBhbGwgaW5nZXN0IHRoZSBzYW1lIGJ1Y2tldCxcbi8vIHNvIG1vcmUgY2FyZSBuZWVkcyB0byBiZSB0YWtlbiB3aGVuIHRhZ2dpbmcgb2JqZWN0cy5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfQ1JPU1NfQUNDT1VOVF9CVUNLRVRTOiBzdHJpbmdbXSA9IFtcbiAgICBcInRlc3QtZGF0YS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIlxuXTtcblxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUID1cbiAgXCJvcmNhYnVzL2ZpbGUtbWFuYWdlci1wcmVzaWduLXVzZXJcIjsgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG52YWxpZGF0ZVNlY3JldE5hbWUoRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVQpO1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0FDQ0VTU19LRVlfQVJOUzogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtCRVRBX0VOVklST05NRU5ULnJlZ2lvbn06JHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9OnNlY3JldDoke0ZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUfWAsXG4gIEdBTU1BOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke0dBTU1BX0VOVklST05NRU5ULnJlZ2lvbn06JHtHQU1NQV9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVH1gLFxuICBQUk9EOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufToke1BST0RfRU5WSVJPTk1FTlQuYWNjb3VudH06c2VjcmV0OiR7RklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVR9YCxcbn07XG5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfSU5HRVNUX1JPTEUgPSBcIm9yY2FidXMtZmlsZS1tYW5hZ2VyLWluZ2VzdC1yb2xlXCI7XG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUiA9IFwib3JjYWJ1cy1maWxlLW1hbmFnZXItcHJlc2lnbi11c2VyXCI7IC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9ET01BSU5fUFJFRklYID0gXCJmaWxlXCI7XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNEVBSXNDO0FBRXRDLDZCQUErRztBQUMvRyx1Q0FBK0M7QUFFL0MscURBQXFEO0FBQ3hDLFFBQUEsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUM7QUFFMUUsNERBQTREO0FBQy9DLFFBQUEsb0JBQW9CLEdBQWdDO0lBQy9ELElBQUksRUFBRTtRQUNKLHdCQUFtQixDQUFDLElBQUk7UUFDeEIscUNBQTZCO1FBQzdCLHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFFLGlDQUFpQyw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ3RGLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxPQUFPLElBQUksNENBQWdCLENBQUMsTUFBTSxFQUFFO0tBQ2hGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsd0JBQW1CLENBQUMsS0FBSztRQUN6QixxQkFBcUIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1RSxpQ0FBaUMsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtRQUN4RiwwQkFBMEIsNkNBQWlCLENBQUMsT0FBTyxJQUFJLDZDQUFpQixDQUFDLE1BQU0sRUFBRTtLQUNsRjtJQUNELElBQUksRUFBRTtRQUNKLHdCQUFtQixDQUFDLElBQUk7UUFDeEIsNEJBQXVCO1FBQ3ZCLHlCQUFvQjtRQUNwQixxQkFBcUIsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUMxRSxpQ0FBaUMsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUN0RiwwQkFBMEIsNENBQWdCLENBQUMsT0FBTyxJQUFJLDRDQUFnQixDQUFDLE1BQU0sRUFBRTtRQUMvRSxpQ0FBaUMsNENBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzFELDJDQUEyQztRQUMzQywwQ0FBMEM7UUFDMUMsMENBQTBDO1FBQzFDLDBDQUEwQztLQUMzQztDQUNGLENBQUM7QUFFRixzRkFBc0Y7QUFDekUsUUFBQSwwQkFBMEIsR0FBZ0M7SUFDckUsSUFBSSxFQUFFLENBQUMsMEJBQXFCLENBQUMsSUFBSSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxDQUFDLDBCQUFxQixDQUFDLEtBQUssQ0FBQztJQUNwQyxJQUFJLEVBQUUsQ0FBQywwQkFBcUIsQ0FBQyxJQUFJLENBQUM7Q0FDbkMsQ0FBQztBQUVGLHdHQUF3RztBQUN4Ryx1REFBdUQ7QUFDMUMsUUFBQSxrQ0FBa0MsR0FBYTtJQUN4RCx1Q0FBdUM7Q0FDMUMsQ0FBQztBQUVXLFFBQUEsZ0NBQWdDLEdBQzNDLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCO0FBQ2xFLElBQUEsNEJBQWtCLEVBQUMsd0NBQWdDLENBQUMsQ0FBQztBQUV4QyxRQUFBLDRCQUE0QixHQUE4QjtJQUNyRSxJQUFJLEVBQUUsMEJBQTBCLDRDQUFnQixDQUFDLE1BQU0sSUFBSSw0Q0FBZ0IsQ0FBQyxPQUFPLFdBQVcsd0NBQWdDLEVBQUU7SUFDaEksS0FBSyxFQUFFLDBCQUEwQiw2Q0FBaUIsQ0FBQyxNQUFNLElBQUksNkNBQWlCLENBQUMsT0FBTyxXQUFXLHdDQUFnQyxFQUFFO0lBQ25JLElBQUksRUFBRSwwQkFBMEIsNENBQWdCLENBQUMsTUFBTSxJQUFJLDRDQUFnQixDQUFDLE9BQU8sV0FBVyx3Q0FBZ0MsRUFBRTtDQUNqSSxDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RCxRQUFBLHlCQUF5QixHQUFHLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCO0FBQzVGLFFBQUEsMEJBQTBCLEdBQUcsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uZmlnIGZvciB0aGUgRmlsZU1hbmFnZXIuXG4gKi9cblxuaW1wb3J0IHtcbiAgQkVUQV9FTlZJUk9OTUVOVCxcbiAgR0FNTUFfRU5WSVJPTk1FTlQsXG4gIFBST0RfRU5WSVJPTk1FTlQsXG59IGZyb20gXCIuLi9kZXBsb3ltZW50LXN0YWNrLXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBTdGFnZU5hbWUgfSBmcm9tIFwiLi9hY2NvdW50c1wiO1xuaW1wb3J0IHtBTkFMWVNJU19BUkNISVZFX0JVQ0tFVCwgRkFTVFFfQVJDSElWRV9CVUNLRVQsIE9OQ09BTkFMWVNFUl9CVUNLRVQsIFBJUEVMSU5FX0NBQ0hFX0JVQ0tFVH0gZnJvbSBcIi4vczNcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSB9IGZyb20gXCIuL3NlY3JldHNcIjtcblxuLy8gVGhlIGludmVudG9yeSBidWNrZXQgdXNlZCBmb3IgdGVzdGluZyBmaWxlbWFuYWdlci5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfSU5WRU5UT1JZX0JVQ0tFVCA9IFwiZmlsZW1hbmFnZXItaW52ZW50b3J5LXRlc3RcIjtcblxuLy8gUmVndWxhciBidWNrZXRzIHdoZXJlIGFsbCBkYXRhIGlzIGF2YWlsYWJsZSBhbmQgaW5nZXN0ZWQuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0JVQ0tFVFM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgQkVUQTogW1xuICAgIE9OQ09BTkFMWVNFUl9CVUNLRVQuQkVUQSxcbiAgICBGSUxFX01BTkFHRVJfSU5WRU5UT1JZX0JVQ0tFVCxcbiAgICBgbnRzbS1maW5nZXJwcmludHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LSR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtCRVRBX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICBdLFxuICBHQU1NQTogW1xuICAgIE9OQ09BTkFMWVNFUl9CVUNLRVQuR0FNTUEsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtHQU1NQV9FTlZJUk9OTUVOVC5hY2NvdW50fS0ke0dBTU1BX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIGBkYXRhLXNoYXJpbmctYXJ0aWZhY3RzLSR7R0FNTUFfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtHQU1NQV9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgXSxcbiAgUFJPRDogW1xuICAgIE9OQ09BTkFMWVNFUl9CVUNLRVQuUFJPRCxcbiAgICBBTkFMWVNJU19BUkNISVZFX0JVQ0tFVCxcbiAgICBGQVNUUV9BUkNISVZFX0JVQ0tFVCxcbiAgICBgbnRzbS1maW5nZXJwcmludHMtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LSR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZmFzdHEtbWFuYWdlci1zZXF1YWxpLW91dHB1dHMtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LSR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259YCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke1BST0RfRU5WSVJPTk1FTlQuYWNjb3VudH0tJHtQUk9EX0VOVklST05NRU5ULnJlZ2lvbn1gLFxuICAgIGBwaXBlbGluZS1tb250YXVrLTk3NzI1MTU4NjY1Ny0ke1BST0RfRU5WSVJPTk1FTlQucmVnaW9ufWAsXG4gICAgXCJyZXNlYXJjaC1kYXRhLTU1MDQzNTUwMDkxOC1hcC1zb3V0aGVhc3QtMlwiLFxuICAgIFwicHJvamVjdC1kYXRhLTg4OTUyMjA1MDQzOS1hcC1zb3V0aGVhc3QtMlwiLFxuICAgIFwicHJvamVjdC1kYXRhLTQ5MTA4NTQxNTM5OC1hcC1zb3V0aGVhc3QtMlwiLFxuICAgIFwicHJvamVjdC1kYXRhLTA3MTc4NDQ0NTg3Mi1hcC1zb3V0aGVhc3QtMlwiLFxuICBdLFxufTtcblxuLy8gQ2FjaGUgYnVja2V0cyB3aGVyZSB0aGUgYGJ5b2ItaWNhdjIvKi9jYWNoZS8qYCBwYXR0ZXJuIGlzIGlnbm9yZWQgZm9yIHRoZSBpbmdlc3Rlci5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfQ0FDSEVfQlVDS0VUUzogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nW10+ID0ge1xuICBCRVRBOiBbUElQRUxJTkVfQ0FDSEVfQlVDS0VULkJFVEFdLFxuICBHQU1NQTogW1BJUEVMSU5FX0NBQ0hFX0JVQ0tFVC5HQU1NQV0sXG4gIFBST0Q6IFtQSVBFTElORV9DQUNIRV9CVUNLRVQuUFJPRF0sXG59O1xuXG4vLyBDcm9zcyBhY2NvdW50IGJ1Y2tldHMgd2hlcmUgdGhlIGRldi9zdGcvcHJvZCBmaWxlbWFuYWdlciBpbnN0YW5jZXMgc2hvdWxkIGFsbCBpbmdlc3QgdGhlIHNhbWUgYnVja2V0LFxuLy8gc28gbW9yZSBjYXJlIG5lZWRzIHRvIGJlIHRha2VuIHdoZW4gdGFnZ2luZyBvYmplY3RzLlxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9DUk9TU19BQ0NPVU5UX0JVQ0tFVFM6IHN0cmluZ1tdID0gW1xuICAgIFwidGVzdC1kYXRhLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiXG5dO1xuXG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVQgPVxuICBcIm9yY2FidXMvZmlsZS1tYW5hZ2VyLXByZXNpZ24tdXNlclwiOyAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbnZhbGlkYXRlU2VjcmV0TmFtZShGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVCk7XG5cbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfQUNDRVNTX0tFWV9BUk5TOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmc+ID0ge1xuICBCRVRBOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke0JFVEFfRU5WSVJPTk1FTlQucmVnaW9ufToke0JFVEFfRU5WSVJPTk1FTlQuYWNjb3VudH06c2VjcmV0OiR7RklMRV9NQU5BR0VSX1BSRVNJR05fVVNFUl9TRUNSRVR9YCxcbiAgR0FNTUE6IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7R0FNTUFfRU5WSVJPTk1FTlQucmVnaW9ufToke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9OnNlY3JldDoke0ZJTEVfTUFOQUdFUl9QUkVTSUdOX1VTRVJfU0VDUkVUfWAsXG4gIFBST0Q6IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259OiR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSX1NFQ1JFVH1gLFxufTtcblxuZXhwb3J0IGNvbnN0IEZJTEVfTUFOQUdFUl9JTkdFU1RfUk9MRSA9IFwib3JjYWJ1cy1maWxlLW1hbmFnZXItaW5nZXN0LXJvbGVcIjtcbmV4cG9ydCBjb25zdCBGSUxFX01BTkFHRVJfUFJFU0lHTl9VU0VSID0gXCJvcmNhYnVzLWZpbGUtbWFuYWdlci1wcmVzaWduLXVzZXJcIjsgLy8gcHJhZ21hOiBhbGxvd2xpc3Qgc2VjcmV0XG5leHBvcnQgY29uc3QgRklMRV9NQU5BR0VSX0RPTUFJTl9QUkVGSVggPSBcImZpbGVcIjtcbiJdfQ==
@@ -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.96" };
26
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.98" };
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.96" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.98" };
46
46
  /**
47
47
  * The shared security group that is used by compute resources to access the database.
48
48
  * @param scope
@@ -41,4 +41,4 @@ exports.ANALYSIS_ARCHIVE_BUCKET = "archive-prod-analysis-503977275616-ap-southea
41
41
  * The fastq archive bucket.
42
42
  */
43
43
  exports.FASTQ_ARCHIVE_BUCKET = "archive-prod-fastq-503977275616-ap-southeast-2";
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQThCO0lBQzlELElBQUksRUFBRSxnREFBZ0Q7SUFDdEQsS0FBSyxFQUFFLGdEQUFnRDtJQUN2RCxJQUFJLEVBQUUsaURBQWlEO0NBQ3hELENBQUE7QUFFRDs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsNENBQTRDLENBQUE7QUFFakY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLHVDQUF1QyxDQUFBO0FBRXZFOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBOEI7SUFDOUQsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixLQUFLLEVBQUUscUJBQXFCO0lBQzVCLElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQTtBQUVEOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBOEI7SUFDNUQsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLElBQUksRUFBRSw2QkFBNkI7Q0FDcEMsQ0FBQTtBQUVEOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxtREFBbUQsQ0FBQztBQUUzRjs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0YWdlTmFtZX0gZnJvbSBcIi4vYWNjb3VudHNcIjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBTMyBidWNrZXQgbmFtZXMgdXNlZCBmb3IgcGlwZWxpbmUgZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX0NBQ0hFX0JVQ0tFVDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogXCJwaXBlbGluZS1kZXYtY2FjaGUtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gIEdBTU1BOiBcInBpcGVsaW5lLXN0Zy1jYWNoZS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIixcbiAgUFJPRDogXCJwaXBlbGluZS1wcm9kLWNhY2hlLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiLFxufVxuXG4vKipcbiAqIFRoZSByZWZlcmVuY2UgZGF0YSBidWNrZXRcbiAqL1xuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRV9EQVRBX0JVQ0tFVCA9IFwicmVmZXJlbmNlLWRhdGEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCJcblxuLyoqXG4gKiBUaGUgdGVzdCBkYXRhIGJ1Y2tldFxuICovXG5leHBvcnQgY29uc3QgVEVTVF9EQVRBX0JVQ0tFVCA9IFwidGVzdC1kYXRhLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiXG5cbi8qKlxuICogVGhlIGRlZmF1bHQgUzMgcHJlZml4ZXMgdXNlZCBmb3IgcGlwZWxpbmUgZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX0NBQ0hFX1BSRUZJWDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogXCJieW9iLWljYXYyL2RldmVsb3BtZW50L1wiLFxuICBHQU1NQTogXCJieW9iLWljYXYyL3N0YWdpbmcvXCIsXG4gIFBST0Q6IFwiYnlvYi1pY2F2Mi9wcm9kdWN0aW9uL1wiLFxufVxuXG4vKipcbiAqIFRoZSBvbmNvYW5hbHlzZXIgYnVja2V0LlxuICovXG5leHBvcnQgY29uc3QgT05DT0FOQUxZU0VSX0JVQ0tFVDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogJ3VtY2NyLXRlbXAtZGV2JyxcbiAgR0FNTUE6ICd1bWNjci10ZW1wLXN0ZycsXG4gIFBST0Q6ICdvcmcudW1jY3IuZGF0YS5vbmNvYW5hbHlzZXInLFxufVxuXG4vKipcbiAqIFRoZSBhbmFseXNpcyBhcmNoaXZlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFOQUxZU0lTX0FSQ0hJVkVfQlVDS0VUID0gXCJhcmNoaXZlLXByb2QtYW5hbHlzaXMtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCI7XG5cbi8qKlxuICogVGhlIGZhc3RxIGFyY2hpdmUgYnVja2V0LlxuICovXG5leHBvcnQgY29uc3QgRkFTVFFfQVJDSElWRV9CVUNLRVQgPSBcImFyY2hpdmUtcHJvZC1mYXN0cS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIjsiXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQThCO0lBQzlELElBQUksRUFBRSxnREFBZ0Q7SUFDdEQsS0FBSyxFQUFFLGdEQUFnRDtJQUN2RCxJQUFJLEVBQUUsaURBQWlEO0NBQ3hELENBQUE7QUFFRDs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsNENBQTRDLENBQUE7QUFFakY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLHVDQUF1QyxDQUFBO0FBRXZFOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBOEI7SUFDOUQsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixLQUFLLEVBQUUscUJBQXFCO0lBQzVCLElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQTtBQUVEOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBOEI7SUFDNUQsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLElBQUksRUFBRSw2QkFBNkI7Q0FDcEMsQ0FBQTtBQUVEOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxtREFBbUQsQ0FBQztBQUUzRjs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0YWdlTmFtZX0gZnJvbSBcIi4vYWNjb3VudHNcIjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBTMyBidWNrZXQgbmFtZXMgdXNlZCBmb3IgcGlwZWxpbmUgZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX0NBQ0hFX0JVQ0tFVDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogXCJwaXBlbGluZS1kZXYtY2FjaGUtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gIEdBTU1BOiBcInBpcGVsaW5lLXN0Zy1jYWNoZS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIixcbiAgUFJPRDogXCJwaXBlbGluZS1wcm9kLWNhY2hlLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiLFxufVxuXG4vKipcbiAqIFRoZSByZWZlcmVuY2UgZGF0YSBidWNrZXRcbiAqL1xuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRV9EQVRBX0JVQ0tFVCA9IFwicmVmZXJlbmNlLWRhdGEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCJcblxuLyoqXG4gKiBUaGUgdGVzdCBkYXRhIGJ1Y2tldFxuICovXG5leHBvcnQgY29uc3QgVEVTVF9EQVRBX0JVQ0tFVCA9IFwidGVzdC1kYXRhLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiXG5cbi8qKlxuICogVGhlIGRlZmF1bHQgUzMgcHJlZml4ZXMgdXNlZCBmb3IgcGlwZWxpbmUgZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX0NBQ0hFX1BSRUZJWDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogXCJieW9iLWljYXYyL2RldmVsb3BtZW50L1wiLFxuICBHQU1NQTogXCJieW9iLWljYXYyL3N0YWdpbmcvXCIsXG4gIFBST0Q6IFwiYnlvYi1pY2F2Mi9wcm9kdWN0aW9uL1wiLFxufVxuXG4vKipcbiAqIFRoZSBvbmNvYW5hbHlzZXIgYnVja2V0LlxuICovXG5leHBvcnQgY29uc3QgT05DT0FOQUxZU0VSX0JVQ0tFVDogUmVjb3JkPFN0YWdlTmFtZSwgc3RyaW5nPiA9IHtcbiAgQkVUQTogJ3VtY2NyLXRlbXAtZGV2JyxcbiAgR0FNTUE6ICd1bWNjci10ZW1wLXN0ZycsXG4gIFBST0Q6ICdvcmcudW1jY3IuZGF0YS5vbmNvYW5hbHlzZXInLFxufVxuXG4vKipcbiAqIFRoZSBhbmFseXNpcyBhcmNoaXZlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFOQUxZU0lTX0FSQ0hJVkVfQlVDS0VUID0gXCJhcmNoaXZlLXByb2QtYW5hbHlzaXMtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCI7XG5cbi8qKlxuICogVGhlIGZhc3RxIGFyY2hpdmUgYnVja2V0LlxuICovXG5leHBvcnQgY29uc3QgRkFTVFFfQVJDSElWRV9CVUNLRVQgPSBcImFyY2hpdmUtcHJvZC1mYXN0cS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIjtcbiJdfQ==
@@ -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.96" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.98" };
15
15
  /**
16
16
  * Format the ARN for the slack alerts SNS topic for the current stack.
17
17
  * @param stack