Skip to content

Commit 4b58017

Browse files
committed
[NDR-28] new search endpoint and lambda
1 parent 0682043 commit 4b58017

File tree

4 files changed

+49
-5
lines changed

4 files changed

+49
-5
lines changed

infrastructure/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
| Name | Version |
1010
|------|---------|
11-
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.86.1 |
11+
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.84.0 |
1212

1313
## Modules
1414

@@ -63,6 +63,7 @@
6363
| <a name="module_delete_doc_alarm_topic"></a> [delete\_doc\_alarm\_topic](#module\_delete\_doc\_alarm\_topic) | ./modules/sns | n/a |
6464
| <a name="module_document-manifest-job-gateway"></a> [document-manifest-job-gateway](#module\_document-manifest-job-gateway) | ./modules/gateway | n/a |
6565
| <a name="module_document-manifest-job-lambda"></a> [document-manifest-job-lambda](#module\_document-manifest-job-lambda) | ./modules/lambda | n/a |
66+
| <a name="module_document-reference-gateway"></a> [document-reference-gateway](#module\_document-reference-gateway) | ./modules/gateway | n/a |
6667
| <a name="module_document_manifest_alarm"></a> [document\_manifest\_alarm](#module\_document\_manifest\_alarm) | ./modules/lambda_alarms | n/a |
6768
| <a name="module_document_manifest_alarm_topic"></a> [document\_manifest\_alarm\_topic](#module\_document\_manifest\_alarm\_topic) | ./modules/sns | n/a |
6869
| <a name="module_document_reference_dynamodb_table"></a> [document\_reference\_dynamodb\_table](#module\_document\_reference\_dynamodb\_table) | ./modules/dynamo_db | n/a |
@@ -127,6 +128,7 @@
127128
| <a name="module_pdf-stitching-lambda"></a> [pdf-stitching-lambda](#module\_pdf-stitching-lambda) | ./modules/lambda | n/a |
128129
| <a name="module_pdf-stitching-lambda-alarms"></a> [pdf-stitching-lambda-alarms](#module\_pdf-stitching-lambda-alarms) | ./modules/lambda_alarms | n/a |
129130
| <a name="module_route53_fargate_ui"></a> [route53\_fargate\_ui](#module\_route53\_fargate\_ui) | ./modules/route53 | n/a |
131+
| <a name="module_search-document-references-fhir-lambda"></a> [search-document-references-fhir-lambda](#module\_search-document-references-fhir-lambda) | ./modules/lambda | n/a |
130132
| <a name="module_search-document-references-gateway"></a> [search-document-references-gateway](#module\_search-document-references-gateway) | ./modules/gateway | n/a |
131133
| <a name="module_search-document-references-lambda"></a> [search-document-references-lambda](#module\_search-document-references-lambda) | ./modules/lambda | n/a |
132134
| <a name="module_search-patient-details-gateway"></a> [search-patient-details-gateway](#module\_search-patient-details-gateway) | ./modules/gateway | n/a |
@@ -185,6 +187,7 @@
185187
| [aws_api_gateway_integration_response.get_document_reference_mock_403_response](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_integration_response) | resource |
186188
| [aws_api_gateway_integration_response.get_document_reference_mock_404_response](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_integration_response) | resource |
187189
| [aws_api_gateway_method.get_document_reference](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_method) | resource |
190+
| [aws_api_gateway_method.get_document_references_fhir](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_method) | resource |
188191
| [aws_api_gateway_method.login_proxy_method](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_method) | resource |
189192
| [aws_api_gateway_method.sandbox_get_document_reference](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_method) | resource |
190193
| [aws_api_gateway_method_response.response_200](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_method_response) | resource |

infrastructure/lambda-create-doc-ref.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module "create-doc-ref-gateway" {
1+
module "document-reference-gateway" {
22
source = "./modules/gateway"
33
api_gateway_id = aws_api_gateway_rest_api.ndr_doc_store_api.id
44
parent_id = aws_api_gateway_rest_api.ndr_doc_store_api.root_resource_id
@@ -73,7 +73,7 @@ module "create-doc-ref-lambda" {
7373
module.ndr-app-config.app_config_policy,
7474
]
7575
rest_api_id = aws_api_gateway_rest_api.ndr_doc_store_api.id
76-
resource_id = module.create-doc-ref-gateway.gateway_resource_id
76+
resource_id = module.document-reference-gateway.gateway_resource_id
7777
http_methods = ["POST"]
7878
memory_size = 512
7979

@@ -96,7 +96,7 @@ module "create-doc-ref-lambda" {
9696
module.document_reference_dynamodb_table,
9797
module.lloyd_george_reference_dynamodb_table,
9898
module.ndr-bulk-staging-store,
99-
module.create-doc-ref-gateway,
99+
module.document-reference-gateway,
100100
module.ndr-app-config,
101101
module.lloyd_george_reference_dynamodb_table,
102102
module.document_reference_dynamodb_table,

infrastructure/lambda-get-document-nrl.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
resource "aws_api_gateway_resource" "get_document_reference" {
22
rest_api_id = aws_api_gateway_rest_api.ndr_doc_store_api.id
3-
parent_id = module.create-doc-ref-gateway.gateway_resource_id
3+
parent_id = module.document-reference-gateway.gateway_resource_id
44
path_part = "{id}"
55
}
66

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
resource "aws_api_gateway_method" "get_document_references_fhir" {
2+
count = local.is_production ? 0 : 1
3+
rest_api_id = aws_api_gateway_rest_api.ndr_doc_store_api.id
4+
resource_id = module.document-reference-gateway.gateway_resource_id
5+
http_method = "GET"
6+
authorization = "NONE"
7+
api_key_required = true
8+
}
9+
10+
11+
module "search-document-references-fhir-lambda" {
12+
count = local.is_production ? 0 : 1
13+
source = "./modules/lambda"
14+
name = "SearchDocumentReferencesFHIRLambda"
15+
handler = "handlers.fhir_document_reference_search_handler.lambda_handler"
16+
iam_role_policy_documents = [
17+
module.document_reference_dynamodb_table.dynamodb_read_policy_document,
18+
module.document_reference_dynamodb_table.dynamodb_write_policy_document,
19+
module.lloyd_george_reference_dynamodb_table.dynamodb_read_policy_document,
20+
module.lloyd_george_reference_dynamodb_table.dynamodb_write_policy_document,
21+
module.ndr-lloyd-george-store.s3_read_policy_document,
22+
module.ndr-document-store.s3_read_policy_document,
23+
module.ndr-app-config.app_config_policy
24+
]
25+
rest_api_id = aws_api_gateway_rest_api.ndr_doc_store_api.id
26+
resource_id = aws_api_gateway_resource.get_document_references_fhir[0].id
27+
http_methods = ["GET"]
28+
api_execution_arn = aws_api_gateway_rest_api.ndr_doc_store_api.execution_arn
29+
lambda_environment_variables = {
30+
APPCONFIG_APPLICATION = module.ndr-app-config.app_config_application_id
31+
APPCONFIG_ENVIRONMENT = module.ndr-app-config.app_config_environment_id
32+
APPCONFIG_CONFIGURATION = module.ndr-app-config.app_config_configuration_profile_id
33+
DYNAMODB_TABLE_LIST = "[\u0022${terraform.workspace}_${var.docstore_dynamodb_table_name}\u0022, \u0022${terraform.workspace}_${var.lloyd_george_dynamodb_table_name}\u0022]"
34+
WORKSPACE = terraform.workspace
35+
}
36+
depends_on = [
37+
aws_api_gateway_rest_api.ndr_doc_store_api,
38+
module.search-document-references-gateway,
39+
module.ndr-app-config
40+
]
41+
}

0 commit comments

Comments
 (0)