Skip to content

Conversation

@samfallowfield
Copy link
Contributor

@samfallowfield samfallowfield commented Dec 3, 2025

PRM-193 - https://nhsd-jira.digital.nhs.uk/browse/PRM-193

Integrated SonarQube for red lines compliance (currently turned off due to other necessary changes, will be turned back on with a follow up PR immediately after this is approved)

Moved location of test files to central test folder.
Renamed Lambda folders to match Python best practices and allow imports
Renamed Terraform folders to match Terraform best practices
Updated workflow yml files to work with the updated TF names.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for container_repositories on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for email_and_alerting on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (0 to add, 5 to change, 0 to destroy)


Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_lambda_function.email_report_lambda will be updated in-place
  ~ resource "aws_lambda_function" "email_report_lambda" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/email-report.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/email_report.zip"
        id                             = "dev-email-report-lambda"
      ~ last_modified                  = "2025-12-15T11:37:18.000+0000" -> (known after apply)
      ~ source_code_hash               = "PElRggBbB+yDAeGdtr5NSTcFi66Vb7RElVikKBoZUiI=" -> "pEuelk9KN96vcFQf5ipWHtVsaNOOP/50Ux2zRchZUI0="
        tags                           = {
            "ApplicationRole"     = "AwsLambdaFunction"
            "BackupLocal"         = "False"
            "BackupRemote"        = "False"
            "CostCentre"          = "P0688/04"
            "CreatedBy"           = "gp2gp-reporting-infrastructure"
            "Customer"            = "NHS D"
            "DataType"            = "None"
            "Environment"         = "dev"
            "Name"                = "dev-email-report-lambda"
            "OnOffPattern"        = "AlwaysOn"
            "Owner"               = "Candice Moore"
            "Programme"           = "GP IT Futures"
            "Project"             = "Patient Record Migration"
            "ProjectType"         = "Public beta"
            "PublicFacing"        = "N"
            "ServiceCategory"     = "Bronze"
            "TagVersion"          = "1"
            "Team"                = "Registrations"
            "data_classification" = "1"
            "envtype"             = "dev"
        }
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.gp2gp_dashboard_alert_lambda will be updated in-place
  ~ resource "aws_lambda_function" "gp2gp_dashboard_alert_lambda" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/gp2gp-dashboard-alert.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/gp2gp_dashboard_alert.zip"
        id                             = "dev-gp2gp-dashboard-alert-lambda"
      ~ last_modified                  = "2025-12-15T11:37:37.000+0000" -> (known after apply)
      ~ source_code_hash               = "3VEtJ7GHUwePPI6lR3FfHjsL1IO70evpmvJV5LbRUKM=" -> "lTi+YXj7ZmUMamsI4UzORuy2/N2RO2E/GaYVmEXL9us="
        tags                           = {
            "ApplicationRole"     = "AwsLambdaFunction"
            "BackupLocal"         = "False"
            "BackupRemote"        = "False"
            "CostCentre"          = "P0688/04"
            "CreatedBy"           = "gp2gp-reporting-infrastructure"
            "Customer"            = "NHS D"
            "DataType"            = "None"
            "Environment"         = "dev"
            "Name"                = "dev-gp2gp-dashboard-alert-lambda"
            "OnOffPattern"        = "AlwaysOn"
            "Owner"               = "Candice Moore"
            "Programme"           = "GP IT Futures"
            "Project"             = "Patient Record Migration"
            "ProjectType"         = "Public beta"
            "PublicFacing"        = "N"
            "ServiceCategory"     = "Bronze"
            "TagVersion"          = "1"
            "Team"                = "Registrations"
            "data_classification" = "1"
            "envtype"             = "dev"
        }
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.log_alerts_pipeline_error_lambda will be updated in-place
  ~ resource "aws_lambda_function" "log_alerts_pipeline_error_lambda" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/log-alerts-pipeline-error.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/log_alerts_pipeline_error.zip"
        id                             = "dev-log-alerts-pipeline-error-lambda"
      ~ last_modified                  = "2025-12-15T11:37:47.000+0000" -> (known after apply)
      ~ source_code_hash               = "pN/pziNH9L6WlHWkqoLO7oJQPO5cU3ycWBQmpISrChM=" -> "E0g15r8StdiA/JF8PkA/4yuvIO4Y6kqdVmhKQ581BYY="
        tags                           = {
            "ApplicationRole"     = "AwsLambdaFunction"
            "BackupLocal"         = "False"
            "BackupRemote"        = "False"
            "CostCentre"          = "P0688/04"
            "CreatedBy"           = "gp2gp-reporting-infrastructure"
            "Customer"            = "NHS D"
            "DataType"            = "None"
            "Environment"         = "dev"
            "Name"                = "dev-log-alerts-pipeline-error-lambda"
            "OnOffPattern"        = "AlwaysOn"
            "Owner"               = "Candice Moore"
            "Programme"           = "GP IT Futures"
            "Project"             = "Patient Record Migration"
            "ProjectType"         = "Public beta"
            "PublicFacing"        = "N"
            "ServiceCategory"     = "Bronze"
            "TagVersion"          = "1"
            "Team"                = "Registrations"
            "data_classification" = "1"
            "envtype"             = "dev"
        }
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.log_alerts_technical_failures_above_threshold_lambda will be updated in-place
  ~ resource "aws_lambda_function" "log_alerts_technical_failures_above_threshold_lambda" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/log-alerts-technical-failures-above-threshold.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/log_alerts_technical_failures_above_threshold.zip"
        id                             = "dev-log-alerts-technical-failures-above-threshold-lambda"
      ~ last_modified                  = "2025-12-15T11:37:24.000+0000" -> (known after apply)
      ~ source_code_hash               = "21eJ2AOXk3nHufTMzLGNuEwFJoe1plj2Lef2P7ppYAI=" -> "pxz6IRFrhawn0xR2lTdqFIzwmMTnLu/Ru/nhOhZpQJ4="
        tags                           = {
            "ApplicationRole"     = "AwsLambdaFunction"
            "BackupLocal"         = "False"
            "BackupRemote"        = "False"
            "CostCentre"          = "P0688/04"
            "CreatedBy"           = "gp2gp-reporting-infrastructure"
            "Customer"            = "NHS D"
            "DataType"            = "None"
            "Environment"         = "dev"
            "Name"                = "dev-log-alerts-technical-failures-above-threshold-lambda"
            "OnOffPattern"        = "AlwaysOn"
            "Owner"               = "Candice Moore"
            "Programme"           = "GP IT Futures"
            "Project"             = "Patient Record Migration"
            "ProjectType"         = "Public beta"
            "PublicFacing"        = "N"
            "ServiceCategory"     = "Bronze"
            "TagVersion"          = "1"
            "Team"                = "Registrations"
            "data_classification" = "1"
            "envtype"             = "dev"
        }
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.store_asid_lookup will be updated in-place
  ~ resource "aws_lambda_function" "store_asid_lookup" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/store-asid-lookup.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/store_asid_lookup.zip"
        id                             = "dev_store_asid_lookup_lambda"
      ~ last_modified                  = "2025-12-15T11:37:31.000+0000" -> (known after apply)
      ~ source_code_hash               = "pTUBZ+6fEQIWhZkHEuD3GgObYXDc+twTrycR+27Tvdc=" -> "swNsCJ0LKgmSnXz0Uq2B1M4tUjZvCXHHwPsnmw5c2Z8="
        tags                           = {}
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

Plan: 0 to add, 5 to change, 0 to destroy.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for step_function on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 8, 2026

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for base_support on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for transfer_classifier on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for gp2gp_dashboard on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for base_networking on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for validate_metrics on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (0 to add, 1 to change, 0 to destroy)


Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_lambda_function.validate_metrics_lambda will be updated in-place
  ~ resource "aws_lambda_function" "validate_metrics_lambda" {
      ~ filename                       = "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambda/build/validate-metrics.zip" -> "/home/runner/work/gp2gp-reporting-infrastructure/gp2gp-reporting-infrastructure/lambdas/build/validate_metrics.zip"
        id                             = "dev-validate-metrics-lambda"
      ~ last_modified                  = "2025-12-03T14:29:04.000+0000" -> (known after apply)
      ~ source_code_hash               = "z2E/1J5L57t7Y8Cwdo+WOyQurShdnFPImiZkOwRQG/k=" -> "MOoL2dNKIqNz3yi4yyV/GclxwNtByytZbmU9VqYE3UE="
        tags                           = {
            "ApplicationRole"     = "AwsLambdaFunction"
            "BackupLocal"         = "False"
            "BackupRemote"        = "False"
            "CostCentre"          = "P0688/04"
            "CreatedBy"           = "gp2gp-reporting-infrastructure"
            "Customer"            = "NHS D"
            "DataType"            = "None"
            "Environment"         = "dev"
            "Name"                = "dev-validate-metrics-lambda"
            "OnOffPattern"        = "AlwaysOn"
            "Owner"               = "Candice Moore"
            "Programme"           = "GP IT Futures"
            "Project"             = "Patient Record Migration"
            "ProjectType"         = "Public beta"
            "PublicFacing"        = "N"
            "ServiceCategory"     = "Bronze"
            "TagVersion"          = "1"
            "Team"                = "Registrations"
            "data_classification" = "1"
            "envtype"             = "dev"
        }
        # (28 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for ecs_cluster on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for ods_downloader on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for reports_generator on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (17 to add, 0 to change, 0 to destroy)


Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # data.aws_iam_policy_document.reports_generator_output_buckets_write_access will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "reports_generator_output_buckets_write_access" {
      + id            = (known after apply)
      + json          = (known after apply)
      + minified_json = (known after apply)

      + statement {
          + actions   = [
              + "s3:PutObject",
            ]
          + resources = [
              + "arn:aws:s3:::prm-gp2gp-notebook-data-dev/*",
              + "arn:aws:s3:::prm-gp2gp-reports-dev/*",
            ]
          + sid       = "WriteObjects"
        }
    }

  # aws_cloudwatch_dashboard.data_pipeline will be created
  + resource "aws_cloudwatch_dashboard" "data_pipeline" {
      + dashboard_arn  = (known after apply)
      + dashboard_body = (sensitive value)
      + dashboard_name = "dev-registrations-data-pipeline-reports-generator"
      + id             = (known after apply)
      + region         = "eu-west-2"
    }

  # aws_ecs_task_definition.reports_generator will be created
  + resource "aws_ecs_task_definition" "reports_generator" {
      + arn                      = (known after apply)
      + arn_without_revision     = (known after apply)
      + container_definitions    = (sensitive value)
      + cpu                      = "1024"
      + enable_fault_injection   = (known after apply)
      + execution_role_arn       = (sensitive value)
      + family                   = "dev-reports-generator"
      + id                       = (known after apply)
      + memory                   = "2048"
      + network_mode             = "awsvpc"
      + region                   = "eu-west-2"
      + requires_compatibilities = [
          + "FARGATE",
        ]
      + revision                 = (known after apply)
      + skip_destroy             = false
      + tags                     = {
          + "ApplicationRole"     = "AwsEcsTaskDefinition"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all                 = {
          + "ApplicationRole"     = "AwsEcsTaskDefinition"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + task_role_arn            = (known after apply)
      + track_latest             = false
    }

  # aws_iam_policy.notebook_data_bucket_read_access will be created
  + resource "aws_iam_policy" "notebook_data_bucket_read_access" {
      + arn              = (known after apply)
      + attachment_count = (known after apply)
      + id               = (known after apply)
      + name             = "prm-gp2gp-notebook-data-dev-read"
      + name_prefix      = (known after apply)
      + path             = "/"
      + policy           = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = "s3:ListBucket"
                      + Effect   = "Allow"
                      + Resource = "arn:aws:s3:::prm-gp2gp-notebook-data-dev"
                      + Sid      = "ListBucket"
                    },
                  + {
                      + Action   = "s3:GetObject"
                      + Effect   = "Allow"
                      + Resource = "arn:aws:s3:::prm-gp2gp-notebook-data-dev/*"
                      + Sid      = "ReadObjects"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id        = (known after apply)
      + tags_all         = (known after apply)
    }

  # aws_iam_policy.reports_generator_output_buckets_write_access will be created
  + resource "aws_iam_policy" "reports_generator_output_buckets_write_access" {
      + arn              = (known after apply)
      + attachment_count = (known after apply)
      + id               = (known after apply)
      + name             = "reports-generator-output-buckets-dev-write"
      + name_prefix      = (known after apply)
      + path             = "/"
      + policy           = (known after apply)
      + policy_id        = (known after apply)
      + tags_all         = (known after apply)
    }

  # aws_iam_role.reports_generator will be created
  + resource "aws_iam_role" "reports_generator" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + description           = "Role for reports generator ECS task"
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "dev-registrations-reports-generator"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy (known after apply)
    }

  # aws_iam_role_policy_attachment.reports_generator_notebook_data_bucket_read_access will be created
  + resource "aws_iam_role_policy_attachment" "reports_generator_notebook_data_bucket_read_access" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "dev-registrations-reports-generator"
    }

  # aws_iam_role_policy_attachment.reports_generator_output_buckets_write_access will be created
  + resource "aws_iam_role_policy_attachment" "reports_generator_output_buckets_write_access" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "dev-registrations-reports-generator"
    }

  # aws_iam_role_policy_attachment.reports_generator_transfers_input_bucket_read_access will be created
  + resource "aws_iam_role_policy_attachment" "reports_generator_transfers_input_bucket_read_access" {
      + id         = (known after apply)
      + policy_arn = (sensitive value)
      + role       = "dev-registrations-reports-generator"
    }

  # aws_s3_bucket.reports_generator will be created
  + resource "aws_s3_bucket" "reports_generator" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "prm-gp2gp-reports-dev"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_region               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = false
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = "eu-west-2"
      + request_payer               = (known after apply)
      + tags                        = {
          + "ApplicationRole"     = "AwsS3Bucket"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-output-reports"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all                    = {
          + "ApplicationRole"     = "AwsS3Bucket"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-output-reports"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)

      + cors_rule (known after apply)

      + grant (known after apply)

      + lifecycle_rule (known after apply)

      + logging (known after apply)

      + object_lock_configuration (known after apply)

      + replication_configuration (known after apply)

      + server_side_encryption_configuration (known after apply)

      + versioning (known after apply)

      + website (known after apply)
    }

  # aws_s3_bucket_acl.reports_generator will be created
  + resource "aws_s3_bucket_acl" "reports_generator" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + access_control_policy (known after apply)
    }

  # aws_s3_bucket_ownership_controls.reports_generator will be created
  + resource "aws_s3_bucket_ownership_controls" "reports_generator" {
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + rule {
          + object_ownership = "ObjectWriter"
        }
    }

  # aws_s3_bucket_public_access_block.reports_generator will be created
  + resource "aws_s3_bucket_public_access_block" "reports_generator" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = true
      + region                  = "eu-west-2"
      + restrict_public_buckets = true
    }

  # aws_s3_bucket_versioning.reports_generator will be created
  + resource "aws_s3_bucket_versioning" "reports_generator" {
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + versioning_configuration {
          + mfa_delete = (known after apply)
          + status     = "Enabled"
        }
    }

  # aws_s3_object.report_metadata_example will be created
  + resource "aws_s3_object" "report_metadata_example" {
      + acl                    = (known after apply)
      + arn                    = (known after apply)
      + bucket                 = (known after apply)
      + bucket_key_enabled     = (known after apply)
      + checksum_crc32         = (known after apply)
      + checksum_crc32c        = (known after apply)
      + checksum_crc64nvme     = (known after apply)
      + checksum_sha1          = (known after apply)
      + checksum_sha256        = (known after apply)
      + content_type           = "text/csv"
      + etag                   = (known after apply)
      + force_destroy          = false
      + id                     = (known after apply)
      + key                    = "report_metadata_example.csv"
      + kms_key_id             = (known after apply)
      + metadata               = {
          + "config-cutoff-days"              = "0"
          + "report-name"                     = "TRANSFER_DETAILS_BY_HOUR"
          + "reporting-window-end-datetime"   = "2024-08-01T00:00:00+00:00"
          + "reporting-window-start-datetime" = "2024-07-31T00:00:00+00:00"
          + "send-email-notification"         = "True"
          + "technical-failures-percentage"   = "1.78"
          + "total-technical-failures"        = "213"
          + "total-transfers"                 = "11101"
        }
      + region                 = "eu-west-2"
      + server_side_encryption = (known after apply)
      + storage_class          = (known after apply)
      + tags_all               = (known after apply)
      + version_id             = (known after apply)
    }

  # aws_ssm_parameter.reports_generator_iam_role_arn will be created
  + resource "aws_ssm_parameter" "reports_generator_iam_role_arn" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/reports-generator/iam-role-arn"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-iam-role-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-iam-role-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

  # aws_ssm_parameter.reports_generator_output_bucket_name will be created
  + resource "aws_ssm_parameter" "reports_generator_output_bucket_name" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/reports-generator/output-bucket-name"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-output-bucket-name"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-output-bucket-name"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

  # aws_ssm_parameter.reports_generator_task_definition_arn will be created
  + resource "aws_ssm_parameter" "reports_generator_task_definition_arn" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/reports-generator/task-definition-arn"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-task-definition-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-reports-generator-task-definition-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

Plan: 17 to add, 0 to change, 0 to destroy.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for spine_exporter on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (no changes)


No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Report for metrics_calculator on environment: dev

Terraform Format and Style 🖌success

Format Output


Terraform Initialization ⚙️success

Initialization Output

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
- Finding hashicorp/aws versions matching "~> 6.0"...
- Installing hashicorp/aws v6.27.0...
- Installed hashicorp/aws v6.27.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform Validation 🤖success

Validation Output

Success! The configuration is valid.


Terraform Plan 📖success

Show Plan (17 to add, 0 to change, 0 to destroy)


Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # data.aws_iam_policy_document.metrics_calculator_output_bucket_write_access will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "metrics_calculator_output_bucket_write_access" {
      + id            = (known after apply)
      + json          = (known after apply)
      + minified_json = (known after apply)

      + statement {
          + actions   = [
              + "s3:PutObject",
            ]
          + resources = [
              + "arn:aws:s3:::prm-gp2gp-metrics-dev/*",
            ]
          + sid       = "WriteObjects"
        }
    }

  # aws_cloudwatch_dashboard.data_pipeline will be created
  + resource "aws_cloudwatch_dashboard" "data_pipeline" {
      + dashboard_arn  = (known after apply)
      + dashboard_body = (sensitive value)
      + dashboard_name = "dev-registrations-data-pipeline-metrics-calculator"
      + id             = (known after apply)
      + region         = "eu-west-2"
    }

  # aws_ecs_task_definition.metrics_calculator will be created
  + resource "aws_ecs_task_definition" "metrics_calculator" {
      + arn                      = (known after apply)
      + arn_without_revision     = (known after apply)
      + container_definitions    = (sensitive value)
      + cpu                      = "1024"
      + enable_fault_injection   = (known after apply)
      + execution_role_arn       = (sensitive value)
      + family                   = "dev-metrics-calculator"
      + id                       = (known after apply)
      + memory                   = "6144"
      + network_mode             = "awsvpc"
      + region                   = "eu-west-2"
      + requires_compatibilities = [
          + "FARGATE",
        ]
      + revision                 = (known after apply)
      + skip_destroy             = false
      + tags                     = {
          + "ApplicationRole"     = "AwsEcsTaskDefinition"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all                 = {
          + "ApplicationRole"     = "AwsEcsTaskDefinition"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + task_role_arn            = (known after apply)
      + track_latest             = false
    }

  # aws_iam_policy.metrics_calculator_output_bucket_write_access will be created
  + resource "aws_iam_policy" "metrics_calculator_output_bucket_write_access" {
      + arn              = (known after apply)
      + attachment_count = (known after apply)
      + id               = (known after apply)
      + name             = "prm-gp2gp-metrics-dev-write"
      + name_prefix      = (known after apply)
      + path             = "/"
      + policy           = (known after apply)
      + policy_id        = (known after apply)
      + tags_all         = (known after apply)
    }

  # aws_iam_policy.ssm_put_access will be created
  + resource "aws_iam_policy" "ssm_put_access" {
      + arn              = (known after apply)
      + attachment_count = (known after apply)
      + id               = (known after apply)
      + name             = "dev-metrics-calculator-ssm-put-access"
      + name_prefix      = (known after apply)
      + path             = "/"
      + policy           = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = "ssm:PutParameter"
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:ssm:eu-west-2:343515223843:parameter/registrations/dev/data-pipeline/metrics-calculator/practice-metrics-s3-path",
                          + "arn:aws:ssm:eu-west-2:343515223843:parameter/registrations/dev/data-pipeline/metrics-calculator/national-metrics-s3-path",
                        ]
                      + Sid      = "PutSSMParameter"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id        = (known after apply)
      + tags_all         = (known after apply)
    }

  # aws_iam_role.metrics_calculator will be created
  + resource "aws_iam_role" "metrics_calculator" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + description           = "Role for metrics calculator ECS task"
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "dev-registrations-metrics-calculator"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy (known after apply)
    }

  # aws_iam_role_policy_attachment.metrics_calculator_ods_metadata_bucket_read_access will be created
  + resource "aws_iam_role_policy_attachment" "metrics_calculator_ods_metadata_bucket_read_access" {
      + id         = (known after apply)
      + policy_arn = (sensitive value)
      + role       = "dev-registrations-metrics-calculator"
    }

  # aws_iam_role_policy_attachment.metrics_calculator_output_bucket_write_access will be created
  + resource "aws_iam_role_policy_attachment" "metrics_calculator_output_bucket_write_access" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "dev-registrations-metrics-calculator"
    }

  # aws_iam_role_policy_attachment.metrics_calculator_ssm_put_access will be created
  + resource "aws_iam_role_policy_attachment" "metrics_calculator_ssm_put_access" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "dev-registrations-metrics-calculator"
    }

  # aws_iam_role_policy_attachment.metrics_calculator_transfers_data_bucket_read_access will be created
  + resource "aws_iam_role_policy_attachment" "metrics_calculator_transfers_data_bucket_read_access" {
      + id         = (known after apply)
      + policy_arn = (sensitive value)
      + role       = "dev-registrations-metrics-calculator"
    }

  # aws_s3_bucket.metrics_calculator will be created
  + resource "aws_s3_bucket" "metrics_calculator" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "prm-gp2gp-metrics-dev"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_region               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = false
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = "eu-west-2"
      + request_payer               = (known after apply)
      + tags                        = {
          + "ApplicationRole"     = "AwsS3Bucket"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-output-metrics-data-for-metrics-calculator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all                    = {
          + "ApplicationRole"     = "AwsS3Bucket"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-output-metrics-data-for-metrics-calculator"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)

      + cors_rule (known after apply)

      + grant (known after apply)

      + lifecycle_rule (known after apply)

      + logging (known after apply)

      + object_lock_configuration (known after apply)

      + replication_configuration (known after apply)

      + server_side_encryption_configuration (known after apply)

      + versioning (known after apply)

      + website (known after apply)
    }

  # aws_s3_bucket_acl.metrics_calculator will be created
  + resource "aws_s3_bucket_acl" "metrics_calculator" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + access_control_policy (known after apply)
    }

  # aws_s3_bucket_ownership_controls.metrics_calculator will be created
  + resource "aws_s3_bucket_ownership_controls" "metrics_calculator" {
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + rule {
          + object_ownership = "ObjectWriter"
        }
    }

  # aws_s3_bucket_public_access_block.metrics_calculator will be created
  + resource "aws_s3_bucket_public_access_block" "metrics_calculator" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = true
      + region                  = "eu-west-2"
      + restrict_public_buckets = true
    }

  # aws_s3_bucket_versioning.reports_generator will be created
  + resource "aws_s3_bucket_versioning" "reports_generator" {
      + bucket = (known after apply)
      + id     = (known after apply)
      + region = "eu-west-2"

      + versioning_configuration {
          + mfa_delete = (known after apply)
          + status     = "Enabled"
        }
    }

  # aws_ssm_parameter.metrics_calculator_iam_role_arn will be created
  + resource "aws_ssm_parameter" "metrics_calculator_iam_role_arn" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/metrics-calculator/iam-role-arn"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-iam-role-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-iam-role-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

  # aws_ssm_parameter.metrics_calculator_output_bucket_name will be created
  + resource "aws_ssm_parameter" "metrics_calculator_output_bucket_name" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/metrics-calculator/output-bucket-name"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-output-bucket-name"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-output-bucket-name"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

  # aws_ssm_parameter.metrics_calculator_task_definition_arn will be created
  + resource "aws_ssm_parameter" "metrics_calculator_task_definition_arn" {
      + arn            = (known after apply)
      + data_type      = (known after apply)
      + has_value_wo   = (known after apply)
      + id             = (known after apply)
      + insecure_value = (known after apply)
      + key_id         = (known after apply)
      + name           = "/registrations/dev/data-pipeline/metrics-calculator/task-definition-arn"
      + region         = "eu-west-2"
      + tags           = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-task-definition-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tags_all       = {
          + "ApplicationRole"     = "AwsSsmParameter"
          + "BackupLocal"         = "False"
          + "BackupRemote"        = "False"
          + "CostCentre"          = "P0688/04"
          + "CreatedBy"           = "gp2gp-reporting-infrastructure"
          + "Customer"            = "NHS D"
          + "DataType"            = "None"
          + "Environment"         = "dev"
          + "Name"                = "dev-metrics-calculator-task-definition-arn"
          + "OnOffPattern"        = "AlwaysOn"
          + "Owner"               = "Candice Moore"
          + "Programme"           = "GP IT Futures"
          + "Project"             = "Patient Record Migration"
          + "ProjectType"         = "Public beta"
          + "PublicFacing"        = "N"
          + "ServiceCategory"     = "Bronze"
          + "TagVersion"          = "1"
          + "Team"                = "Registrations"
          + "data_classification" = "1"
          + "envtype"             = "dev"
        }
      + tier           = (known after apply)
      + type           = "String"
      + value          = (sensitive value)
      + value_wo       = (write-only attribute)
      + version        = (known after apply)
    }

Plan: 17 to add, 0 to change, 0 to destroy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants