feat(eventbridge-monitor): making an event bridge monitor

Goal
Setup a lambda that simply logs all events that have a detail-type field that appear in our Pocket Eventbridge.
The idea is this can help with debugging of event based systems as long as the event occurred in the last 14 days.
Future
In the future we could make the detail-type & source data log to Grafana, Cloudwatch, or Snowplow so that we can check in on event volumes and patterns.  I chose to leave that out for now.
Todo

[x] setup sentry dsn

Plan Result (user-list-search-cdk)
CI link
Plan: 1 to add, 0 to change, 0 to destroy.

Create

local_file.appspec

Change Result (Click me)

  # local_file.appspec will be created
  + resource "local_file" "appspec" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "node"
                                  + ContainerPort = 4000
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/UserListSearch-Prod-Apollo:373"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (account-delete-monitor-cdk)
CI link
Plan: 0 to add, 1 to change, 0 to destroy.

Update

aws_lambda_function.eventtracker_lambda_2D56166D

Change Result (Click me)

  # aws_lambda_function.eventtracker_lambda_2D56166D will be updated in-place
  ~ resource "aws_lambda_function" "eventtracker_lambda_2D56166D" {
        id                             = "AccountDeleteMonitor-Prod-EventTracker-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:AccountDeleteMonitor-Prod-EventTracker-Function:421" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:AccountDeleteMonitor-Prod-EventTracker-Function:421/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDeleteMonitor"
        }
      ~ version                        = "421" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"              = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

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

Plan Result (shared-snowplow-consumer-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9

Replace

aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B

Change Result (Click me)

  # aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B must be replaced
-/+ resource "aws_ecs_task_definition" "shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/SharedSnowplowConsumer-Prod:179" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/SharedSnowplowConsumer-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/sharedsnowplowconsumer-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/sharedsnowplowconsumer-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "SharedSnowplowConsumer-Prod" -> (known after apply)
      ~ revision                 = 179 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "SharedSnowplowConsumer"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9 will be created
  + resource "local_file" "shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (transactional-emails-cdk)
CI link
Plan: 0 to add, 1 to change, 0 to destroy.

Update

aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8

Change Result (Click me)

  # aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8 will be updated in-place
  ~ resource "aws_lambda_function" "events_sqs-event-consumer_lambda_3BE960B8" {
        id                             = "TransactionalEmails-Prod-Sqs-Event-Consumer-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:TransactionalEmails-Prod-Sqs-Event-Consumer-Function:441" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:TransactionalEmails-Prod-Sqs-Event-Consumer-Function:441/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "TransactionalEmails"
        }
      ~ version                        = "441" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"                            = (sensitive value)
                # (6 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

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

Plan Result (parser-graphql-wrapper-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/ParserGraphQLWrapper-Prod:737" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ParserGraphQLWrapper-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/parsergraphqlwrapper-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/parsergraphqlwrapper-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ParserGraphQLWrapper-Prod" -> (known after apply)
      ~ revision                 = 737 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ParserGraphQLWrapper"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (v3-proxy-api-cdk)
CI link
Plan: 1 to add, 0 to change, 0 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Change Result (Click me)

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "app"
                                  + ContainerPort = 4030
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/V3ProxyApi-Prod:14"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (image-api-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/ImageAPI-Prod:223" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ImageAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/imageapi-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/imageapi-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ImageAPI-Prod" -> (known after apply)
      ~ revision                 = 223 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ImageAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (account-data-deleter-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 2 to change, 1 to destroy.

Create

local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09

Update

aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B
aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C

Replace

aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07

Change Result (Click me)

  # aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07 must be replaced
-/+ resource "aws_ecs_task_definition" "data-deleter-app_application_ecs_service_ecs-task_243DED07" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/AccountDataDeleter-Prod:497" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/AccountDataDeleter-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/accountdatadeleter-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/accountdatadeleter-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "AccountDataDeleter-Prod" -> (known after apply)
      ~ revision                 = 497 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "AccountDataDeleter"
        }
        # (10 unchanged attributes hidden)
    }

  # aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B will be updated in-place
  ~ resource "aws_lambda_function" "batchdeletelambda_batch-delete-lambda_9A38729B" {
        id                             = "AccountDataDeleter-Prod-BatchDeleteLambda-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:AccountDataDeleter-Prod-BatchDeleteLambda-Function:487" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:AccountDataDeleter-Prod-BatchDeleteLambda-Function:487/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "487" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"     = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C will be updated in-place
  ~ resource "aws_lambda_function" "event-consumer_sqs-event-consumer_lambda_2F35855C" {
        id                             = "AccountDataDeleter-Prod-Sqs-Event-Consumer-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:AccountDataDeleter-Prod-Sqs-Event-Consumer-Function:720" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:AccountDataDeleter-Prod-Sqs-Event-Consumer-Function:720/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "720" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"                      = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09 will be created
  + resource "local_file" "data-deleter-app_application_ecs_service_appspec_5FC42C09" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

:x: Plan Failed (pocket-event-bridge-cdk)
CI link
Error: describing SSM parameter (/PocketEventBridge/Prod/SENTRY_DSN): ParameterNotFound:

   with data.aws_ssm_parameter.monitor-lamnda_sentry-dsn_559588A8,
   on cdk.tf.json line 671, in data.aws_ssm_parameter.monitor-lamnda_sentry-dsn_559588A8:
  671:       },

╷
 Error: describing SSM parameter (/PocketEventBridge/CircleCI/Prod/SERVICE_HASH): ParameterNotFound:

   with data.aws_ssm_parameter.monitor-lamnda_service-hash_7C93DB4F,
   on cdk.tf.json line 680, in data.aws_ssm_parameter.monitor-lamnda_service-hash_7C93DB4F:
  680:       }

Create

aws_cloudwatch_event_rule.all-events_PocketEventBridge-Prod-AllEvents-EventBridge-Rule_event-bridge-rule_080532DD
aws_cloudwatch_event_target.all-events_PocketEventBridge-Prod-AllEvents-EventBridge-Rule_event-bridge-rule_event-bridge-target-PocketEventBridge-Prod-All-Events-SNS-Target_7BA9ABB0
aws_cloudwatch_metric_alarm.all-events_allevents-rule-dlq-alarm_ED8F948E
aws_codedeploy_app.monitor-lamnda_monitor_lambda-code-deploy_code-deploy-app_EBECDA43
aws_codedeploy_deployment_group.monitor-lamnda_monitor_lambda-code-deploy_code-deployment-group_D8B4CB7B
aws_iam_policy.monitor-lamnda_monitor_lambda_execution-policy_77981606
aws_iam_policy.monitor-lamnda_monitor_sqs-policy_EB297C33
aws_iam_role.monitor-lamnda_monitor_lambda-code-deploy_code-deploy-role_561D826E
aws_iam_role.monitor-lamnda_monitor_lambda_execution-role_7C8AF605
aws_iam_role_policy_attachment.monitor-lamnda_monitor_execution-role-policy-attachment_08431ACB
aws_iam_role_policy_attachment.monitor-lamnda_monitor_lambda-code-deploy_code-deploy-policy-attachment_C6805B6B
aws_iam_role_policy_attachment.monitor-lamnda_monitor_lambda_execution-role-policy-attachment_632D8530
aws_s3_bucket.monitor-lamnda_monitor_lambda_code-bucket_64447086
aws_s3_bucket_acl.monitor-lamnda_monitor_lambda_code-bucket-acl_7AA57946
aws_s3_bucket_ownership_controls.monitor-lamnda_monitor_lambda_code-bucket-ownership-controls_40F9510F
aws_s3_bucket_public_access_block.monitor-lamnda_monitor_lambda_code-bucket-public-access-block_EA8133CF
aws_sns_topic.all-events_all-events-topic_89B7F91B
aws_sns_topic_policy.all-events_all-events-sns-topic-policy_272EA3C0
aws_sns_topic_subscription.monitor-lamnda_PocketEventBridge-Prod-Monitor-sns-subscription_862ECE7B
aws_sqs_queue.all-events_sns-topic-dql_BAC3B8C5
aws_sqs_queue.monitor-lamnda_monitor_lambda_sqs_queue_647FED8A
aws_sqs_queue.monitor-lamnda_monitor_lambda_sqs_queue_redrive_sqs_queue_A8571159
aws_sqs_queue.monitor-lamnda_sns-topic-dlq_659E4C69
aws_sqs_queue_policy.monitor-lamnda_monitor-sns-dlq-policy_DDBC576A
aws_sqs_queue_policy.monitor-lamnda_montior-sns-sqs-policy_E77441DC
null_resource.all-events_null-resource_9E05AD52

Update

aws_cloudwatch_metric_alarm.shareable-list-item-events_shareablelistevents-rule-dlq-alarm_2CE4E6A3

Plan Result (user-api-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/UserAPI-Prod:358" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/UserAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/userapi-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/userapi-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "UserAPI-Prod" -> (known after apply)
      ~ revision                 = 358 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "UserAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (push-server-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 1 to add, 1 to change, 1 to destroy.

Update

aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4 will be updated in-place
  ~ resource "aws_ecs_service" "application_ecs_service_ecs-service_A8BAB5F4" {
        id                                 = "arn:aws:ecs:us-east-1:996905175585:service/Push-Prod/Push-Prod"
        name                               = "Push-Prod"
        tags                               = {
            "environment" = "Prod"
            "service"     = "Push"
        }
      ~ task_definition                    = "arn:aws:ecs:us-east-1:996905175585:task-definition/Push-Prod:64" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/Push-Prod:64" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/Push-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/push-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/push-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "Push-Prod" -> (known after apply)
      ~ revision                 = 64 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "Push"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan Result (shareable-lists-api-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/ShareableListsApi-Prod:396" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ShareableListsApi-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ShareableListsApi-Prod" -> (known after apply)
      ~ revision                 = 396 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ShareableListsApi"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (fxa-webhook-proxy-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 1 to add, 3 to change, 1 to destroy.

Update

aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171
aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609

Replace

aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512

Change Result (Click me)

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-03-07T00:47:22Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:996905175585:b1aoz7w8yj/" -> (known after apply)
      ~ id            = "5p5azq" -> (known after apply)
      ~ invoke_url    = "https://b1aoz7w8yj.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1709772397702" -> "1709776127685"
            # (1 unchanged element hidden)
        }
        # (1 unchanged attribute hidden)
    }

  # aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9 will be updated in-place
  ~ resource "aws_api_gateway_stage" "apigateway-lambda_api-gateway-stage_E95B0DF9" {
      ~ deployment_id         = "5p5azq" -> (known after apply)
        id                    = "ags-b1aoz7w8yj-prod"
        tags                  = {}
        # (9 unchanged attributes hidden)
    }

  # aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171 will be updated in-place
  ~ resource "aws_lambda_function" "apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171" {
        id                             = "FxAWebhookProxy-Prod-ApiGateway-FxA-Events-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:FxAWebhookProxy-Prod-ApiGateway-FxA-Events-Function:979" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:FxAWebhookProxy-Prod-ApiGateway-FxA-Events-Function:979/invocations" -> (known after apply)
        tags                           = {}
      ~ version                        = "979" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"            = (sensitive value)
                # (3 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609 will be updated in-place
  ~ resource "aws_lambda_function" "proxy-lambda_fxa-events-sqs-lambda_39345609" {
        id                             = "FxAWebhookProxy-Prod-Sqs-FxA-Events-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:FxAWebhookProxy-Prod-Sqs-FxA-Events-Function:1012" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:996905175585:function:FxAWebhookProxy-Prod-Sqs-FxA-Events-Function:1012/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "FxAWebhookProxy"
        }
      ~ version                        = "1012" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"     = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

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

Plan Result (list-api-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 0 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/ListAPI-Prod:1028" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ListAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/listapi-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/listapi-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ListAPI-Prod" -> (known after apply)
      ~ revision                 = 1028 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ListAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

Plan Result (annotations-api-cdk)
CI link
:warning: Resource Deletion will happen
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 2 to add, 2 to change, 1 to destroy.

Create

local_file.application_ecs_service_appspec_94386B9C

Update

aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF
aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD" {
      + id      = (known after apply)
      + json    = (known after apply)
      + version = "2012-10-17"

      + statement {
          + actions   = [
              + "logs:CreateLogGroup",
              + "logs:CreateLogStream",
              + "logs:DescribeLogGroups",
              + "logs:DescribeLogStreams",
              + "logs:PutLogEvents",
              + "xray:GetSamplingRules",
              + "xray:GetSamplingStatisticSummaries",
              + "xray:GetSamplingTargets",
              + "xray:PutTelemetryRecords",
              + "xray:PutTraceSegments",
            ]
          + effect    = "Allow"
          + resources = [
              + "*",
            ]
        }
      + statement {
          + actions   = [
              + "dynamodb:BatchGet*",
              + "dynamodb:BatchWrite*",
              + "dynamodb:Delete*",
              + "dynamodb:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes",
              + "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes/*",
            ]
        }
      + statement {
          + actions   = [
              + "sqs:DeleteMessage",
              + "sqs:ReceiveMessage",
              + "sqs:SendMessage",
              + "sqs:SendMessageBatch",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:sqs:us-east-1:996905175585:AnnotationsAPI-Prod-Batch-Delete-Consumer-Queue",
            ]
        }
    }

  # aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF will be updated in-place
  ~ resource "aws_dynamodb_table" "dynamodb_highlight-notes_dynamodb_table_8BD520BF" {
        id                          = "ANNOT-Prod-highlight-notes"
        name                        = "ANNOT-Prod-highlight-notes"
        tags                        = {
            "environment" = "Prod"
            "service"     = "AnnotationsAPI"
        }
        # (9 unchanged attributes hidden)

      - global_secondary_index {
          - hash_key           = "userId" -> null
          - name               = "userId" -> null
          - non_key_attributes = [] -> null
          - projection_type    = "KEYS_ONLY" -> null
          - read_capacity      = 0 -> null
          - write_capacity     = 0 -> null
        }
      + global_secondary_index {
          + hash_key           = "userId"
          + name               = "userId"
          + non_key_attributes = []
          + projection_type    = "KEYS_ONLY"
          + read_capacity      = 5
          + write_capacity     = 5
        }

        # (4 unchanged blocks hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/AnnotationsAPI-Prod:721" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/AnnotationsAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/annotationsapi-prod-app:329ca3ad8b05b885a8b79035768f0f3e6d7f432a" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/annotationsapi-prod-app:e96f373c97de1edf58224c94fce1edee54bc0d56"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "AnnotationsAPI-Prod" -> (known after apply)
      ~ revision                 = 721 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "AnnotationsAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6 will be updated in-place
  ~ resource "aws_iam_policy" "application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6" {
        id        = "arn:aws:iam::996905175585:policy/AnnotationsAPI-Prod-TaskRolePolicy"
        name      = "AnnotationsAPI-Prod-TaskRolePolicy"
      ~ policy    = jsonencode(
            {
              - Statement = [
                  - {
                      - Action   = [
                          - "xray:PutTraceSegments",
                          - "xray:PutTelemetryRecords",
                          - "xray:GetSamplingTargets",
                          - "xray:GetSamplingStatisticSummaries",
                          - "xray:GetSamplingRules",
                          - "logs:PutLogEvents",
                          - "logs:DescribeLogStreams",
                          - "logs:DescribeLogGroups",
                          - "logs:CreateLogStream",
                          - "logs:CreateLogGroup",
                        ]
                      - Effect   = "Allow"
                      - Resource = "*"
                    },
                  - {
                      - Action   = [
                          - "dynamodb:UpdateItem",
                          - "dynamodb:Scan",
                          - "dynamodb:Query",
                          - "dynamodb:PutItem",
                          - "dynamodb:Get*",
                          - "dynamodb:DescribeTable",
                          - "dynamodb:Delete*",
                          - "dynamodb:BatchWrite*",
                          - "dynamodb:BatchGet*",
                        ]
                      - Effect   = "Allow"
                      - Resource = [
                          - "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes/*",
                          - "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes",
                        ]
                    },
                  - {
                      - Action   = [
                          - "sqs:SendMessageBatch",
                          - "sqs:SendMessage",
                          - "sqs:ReceiveMessage",
                          - "sqs:DeleteMessage",
                        ]
                      - Effect   = "Allow"
                      - Resource = "arn:aws:sqs:us-east-1:996905175585:AnnotationsAPI-Prod-Batch-Delete-Consumer-Queue"
                    },
                ]
              - Version   = "2012-10-17"
            }
        ) -> (known after apply)
        tags      = {
            "environment" = "Prod"
            "service"     = "AnnotationsAPI"
        }
        # (4 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

:white_check_mark: Apply Succeeded (shared-snowplow-consumer-cdk-dev)
CI link
Apply complete! Resources: 2 added, 0 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B must be replaced
-/+ resource "aws_ecs_task_definition" "shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/SharedSnowplowConsumer-Dev:116" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/SharedSnowplowConsumer-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/sharedsnowplowconsumer-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/sharedsnowplowconsumer-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "SharedSnowplowConsumer-Dev" -> (known after apply)
      ~ revision                 = 116 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "SharedSnowplowConsumer"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9 will be created
  + resource "local_file" "shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B: Destroying... [id=SharedSnowplowConsumer-Dev]
aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B: Destruction complete after 0s
aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B: Creating...
aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B: Creation complete after 0s [id=SharedSnowplowConsumer-Dev]
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creating...
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creation complete after 0s [id=956c98f9c3b783767fa897f4c04b2ea9748d2ceb]

Apply complete! Resources: 2 added, 0 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (user-list-search-cdk-dev)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # local_file.appspec will be created
  + resource "local_file" "appspec" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "node"
                                  + ContainerPort = 4000
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserListSearch-Dev-Apollo:131"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.appspec: Creating...
local_file.appspec: Creation complete after 0s [id=823a0ea047e48e253fe5c02b0fe13efd65dd4b0a]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Outputs:

workspace = "UserListSearch-Dev"

:white_check_mark: Apply Succeeded (braze-cdk-dev)
CI link
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
 Your infrastructure matches the configuration.

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

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

:white_check_mark: Apply Succeeded (v3-proxy-api-cdk-dev)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "app"
                                  + ContainerPort = 4030
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:410318598490:task-definition/V3ProxyApi-Dev:22"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=4de3fce37079f58a8b9dc6b17f2c51b7e99642cc]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

:x: Apply Failed (parser-graphql-wrapper-cdk-dev)
CI link
It failed to parse the result.
 Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 will be created
  + resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      + arn                      = (known after apply)
      + arn_without_revision     = (known after apply)
      + container_definitions    = jsonencode(
            [
              + {
                  + cpu                    = 0
                  + environment            = [
                      + {
                          + name  = "ENVIRONMENT"
                          + value = "development"
                        },
                      + {
                          + name  = "OTLP_COLLECTOR_HOST"
                          + value = "localhost"
                        },
                      + {
                          + name  = "REDIS_IS_CLUSTER"
                          + value = "true"
                        },
                      + {
                          + name  = "REDIS_IS_TLS"
                          + value = "true"
                        },
                      + {
                          + name  = "REDIS_PRIMARY_ENDPOINT"
                          + value = "parsergraphqlwrapper-dev-serverless-n7e2yl.serverless.use1.cache.amazonaws.com"
                        },
                      + {
                          + name  = "REDIS_READER_ENDPOINT"
                          + value = "parsergraphqlwrapper-dev-serverless-n7e2yl.serverless.use1.cache.amazonaws.com"
                        },
                    ]
                  + essential              = true
                  + healthCheck            = {
                      + command     = [
                          + "CMD-SHELL",
                          + "curl -f http://localhost:4001/.well-known/apollo/server-health || exit 1",
                        ]
                      + interval    = 5
                      + retries     = 3
                      + startPeriod = 30
                      + timeout     = 5
                    }
                  + image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/parsergraphqlwrapper-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                  + logConfiguration       = {
                      + logDriver     = "awslogs"
                      + options       = {
                          + awslogs-group             = "/Backend/ParserGraphQLWrapper-Dev/ecs/app"
                          + awslogs-multiline-pattern = "^\\S.+"
                          + awslogs-region            = "us-east-1"
                          + awslogs-stream-prefix     = "ecs"
                        }
                      + secretOptions = []
                    }
                  + mountPoints            = []
                  + name                   = "app"
                  + portMappings           = [
                      + {
                          + containerPort = 4001
                          + hostPort      = 4001
                        },
                    ]
                  + readonlyRootFilesystem = false
                  + secrets                = [
                      + {
                          + name      = "DB_HOST"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserGraphQLWrapper/Dev/READITLA_DB:host::"
                        },
                      + {
                          + name      = "DB_PASSWORD"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserGraphQLWrapper/Dev/READITLA_DB:password::"
                        },
                      + {
                          + name      = "DB_USERNAME"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserGraphQLWrapper/Dev/READITLA_DB:username::"
                        },
                      + {
                          + name      = "PARSER_URL"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/SECRETS:parser_endpoint::"
                        },
                      + {
                          + name      = "POCKET_SHARES_DATABASE_WRITE_HOST"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/POCKET_SHARES:host::"
                        },
                      + {
                          + name      = "POCKET_SHARES_DATABASE_WRITE_PASSWORD"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/POCKET_SHARES:password::"
                        },
                      + {
                          + name      = "POCKET_SHARES_DATABASE_WRITE_USER"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/POCKET_SHARES:username::"
                        },
                      + {
                          + name      = "SENTRY_DSN"
                          + valueFrom = "arn:aws:ssm:us-east-1:410318598490:parameter/ParserGraphQLWrapper/Dev/SENTRY_DSN"
                        },
                      + {
                          + name      = "SHORT_CODE_CHARS"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/SECRETS:short_code_chars::"
                        },
                      + {
                          + name      = "SHORT_PREFIX"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/SECRETS:short_prefix::"
                        },
                      + {
                          + name      = "SHORT_PREFIX_SECURE"
                          + valueFrom = "arn:aws:secretsmanager:us-east-1:410318598490:secret:ParserWrapperApi/Dev/SECRETS:short_prefix_secure::"
                        },
                    ]
                  + volumesFrom            = []
                },
              + {
                  + command                = [
                      + "--config=/etc/ecs/ecs-xray.yaml",
                    ]
                  + cpu                    = 0
                  + environment            = []
                  + essential              = true
                  + image                  = "amazon/aws-otel-collector"
                  + logConfiguration       = {
                      + logDriver     = "awslogs"
                      + options       = {
                          + awslogs-group             = "/Backend/ParserGraphQLWrapper-Dev/ecs/aws-otel-collector"
                          + awslogs-multiline-pattern = "^\\S.+"
                          + awslogs-region            = "us-east-1"
                          + awslogs-stream-prefix     = "ecs"
                        }
                      + secretOptions = []
                    }
                  + mountPoints            = []
                  + name                   = "aws-otel-collector"
                  + portMappings           = [
                      + {
                          + containerPort = 4138
                          + hostPort      = 4138
                        },
                      + {
                          + containerPort = 4137
                          + hostPort      = 4137
                        },
                    ]
                  + readonlyRootFilesystem = false
                  + repositoryCredentials  = {
                      + credentialsParameter = "arn:aws:secretsmanager:us-east-1:410318598490:secret:Shared/DockerHub"
                    }
                  + volumesFrom            = []
                },
            ]
        )
      + cpu                      = "2048"
      + execution_role_arn       = "arn:aws:iam::410318598490:role/ParserGraphQLWrapper-Dev-TaskExecutionRole"
      + family                   = "ParserGraphQLWrapper-Dev"
      + id                       = (known after apply)
      + memory                   = "4096"
      + network_mode             = "awsvpc"
      + requires_compatibilities = [
          + "FARGATE",
        ]
      + revision                 = (known after apply)
      + skip_destroy             = true
      + tags                     = {
          + "environment" = "Dev"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all                 = {
          + "environment" = "Dev"
          + "service"     = "ParserGraphQLWrapper"
        }
      + task_role_arn            = "arn:aws:iam::410318598490:role/ParserGraphQLWrapper-Dev-TaskRole"
      + track_latest             = false
    }

  # aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF will be updated in-place
  ~ resource "aws_elasticache_serverless_cache" "serverless_redis_elasticache_serverless_356B3FAF" {
        id                       = "parsergraphqlwrapper-dev-serverless"
        name                     = "parsergraphqlwrapper-dev-serverless"
        tags                     = {
            "environment" = "Dev"
            "service"     = "ParserGraphQLWrapper"
        }
        # (14 unchanged attributes hidden)

      - cache_usage_limits {
          - data_storage {
              - maximum = 100 -> null
              - unit    = "GB" -> null
            }
        }
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 1 to change, 0 to destroy.
aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF: Modifying... [id=parsergraphqlwrapper-dev-serverless]
aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF: Still modifying... [id=parsergraphqlwrapper-dev-serverless, 10s elapsed]
aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF: Still modifying... [id=parsergraphqlwrapper-dev-serverless, 20s elapsed]
aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF: Still modifying... [id=parsergraphqlwrapper-dev-serverless, 30s elapsed]
╷
│ Error: Provider produced inconsistent result after apply
│
│ When applying changes to
│ aws_elasticache_serverless_cache.serverless_redis_elasticache_serverless_356B3FAF,
│ provider "provider[\"registry.terraform.io/hashicorp/aws\"]" produced an
│ unexpected new value: .cache_usage_limits: block count changed from 0 to 1.
│
│ This is a bug in the provider, which should be reported in the provider's
│ own issue tracker.
╵

:white_check_mark: Apply Succeeded (transactional-emails-cdk-dev)
CI link
Apply complete! Resources: 0 added, 5 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_codedeploy_app.events_sqs-event-consumer_lambda-code-deploy_code-deploy-app_7EC26991 will be updated in-place
  ~ resource "aws_codedeploy_app" "events_sqs-event-consumer_lambda-code-deploy_code-deploy-app_7EC26991" {
        id               = "0ae9c91d-542a-4091-b93d-caf96fc81cb6:TransactionalEmails-Dev-Sqs-Event-Consumer-Lambda"
        name             = "TransactionalEmails-Dev-Sqs-Event-Consumer-Lambda"
      ~ tags             = {
          - "environment" = "Dev" -> null
          - "service"     = "TransactionalEmails" -> null
        }
      ~ tags_all         = {
          - "environment" = "Dev"
          - "service"     = "TransactionalEmails"
        } -> (known after apply)
        # (4 unchanged attributes hidden)
    }

  # aws_codedeploy_deployment_group.events_sqs-event-consumer_lambda-code-deploy_code-deployment-group_BF92F57F will be updated in-place
  ~ resource "aws_codedeploy_deployment_group" "events_sqs-event-consumer_lambda-code-deploy_code-deployment-group_BF92F57F" {
        id                          = "0a60418b-4b2f-41ab-b64b-f6125a782f5e"
      ~ tags                        = {
          - "environment" = "Dev" -> null
          - "service"     = "TransactionalEmails" -> null
        }
      ~ tags_all                    = {
          - "environment" = "Dev"
          - "service"     = "TransactionalEmails"
        } -> (known after apply)
        # (9 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # aws_iam_role.events_sqs-event-consumer_lambda-code-deploy_code-deploy-role_4FCF08D9 will be updated in-place
  ~ resource "aws_iam_role" "events_sqs-event-consumer_lambda-code-deploy_code-deploy-role_4FCF08D9" {
        id                    = "TransactionalEmails-Dev-Sqs-Event-Consumer-CodeDeployRole"
        name                  = "TransactionalEmails-Dev-Sqs-Event-Consumer-CodeDeployRole"
      ~ tags                  = {
          - "environment" = "Dev" -> null
          - "service"     = "TransactionalEmails" -> null
        }
      ~ tags_all              = {
          - "environment" = "Dev"
          - "service"     = "TransactionalEmails"
        } -> (known after apply)
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # aws_sqs_queue_policy.transactional-email-sns-dlq-policy will be updated in-place
  ~ resource "aws_sqs_queue_policy" "transactional-email-sns-dlq-policy" {
        id        = "https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-SNS-Topics-DLQ"
      ~ policy    = jsonencode(
          ~ {
              ~ Statement = [
                  ~ {
                      ~ Condition = {
                          ~ ArnLike = {
                              ~ "aws:SourceArn" = [
                                    # (2 unchanged elements hidden)
                                    "arn:aws:sns:us-east-1:410318598490:PocketEventBridge-Dev-UserRegistrationTopic",
                                  - "arn:aws:sns:us-east-1:410318598490:PocketEventBridge-Dev-ForgotPassword-Topic",
                                ]
                            }
                        }
                        # (4 unchanged attributes hidden)
                    },
                ]
                # (1 unchanged attribute hidden)
            }
        )
        # (1 unchanged attribute hidden)
    }

  # aws_sqs_queue_policy.transactional-email-sns-sqs-policy will be updated in-place
  ~ resource "aws_sqs_queue_policy" "transactional-email-sns-sqs-policy" {
        id        = "https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-Sqs-Event-Consumer-Queue"
      ~ policy    = jsonencode(
          ~ {
              ~ Statement = [
                  ~ {
                      ~ Condition = {
                          ~ ArnLike = {
                              ~ "aws:SourceArn" = [
                                    # (2 unchanged elements hidden)
                                    "arn:aws:sns:us-east-1:410318598490:PocketEventBridge-Dev-UserRegistrationTopic",
                                  - "arn:aws:sns:us-east-1:410318598490:PocketEventBridge-Dev-ForgotPassword-Topic",
                                ]
                            }
                        }
                        # (4 unchanged attributes hidden)
                    },
                ]
                # (1 unchanged attribute hidden)
            }
        )
        # (1 unchanged attribute hidden)
    }

Plan: 0 to add, 5 to change, 0 to destroy.
aws_sqs_queue_policy.transactional-email-sns-dlq-policy: Modifying... [id=https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-SNS-Topics-DLQ]
aws_sqs_queue_policy.transactional-email-sns-sqs-policy: Modifying... [id=https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-Sqs-Event-Consumer-Queue]
aws_iam_role.events_sqs-event-consumer_lambda-code-deploy_code-deploy-role_4FCF08D9: Modifying... [id=TransactionalEmails-Dev-Sqs-Event-Consumer-CodeDeployRole]
aws_codedeploy_app.events_sqs-event-consumer_lambda-code-deploy_code-deploy-app_7EC26991: Modifying... [id=0ae9c91d-542a-4091-b93d-caf96fc81cb6:TransactionalEmails-Dev-Sqs-Event-Consumer-Lambda]
aws_iam_role.events_sqs-event-consumer_lambda-code-deploy_code-deploy-role_4FCF08D9: Modifications complete after 0s [id=TransactionalEmails-Dev-Sqs-Event-Consumer-CodeDeployRole]
aws_codedeploy_app.events_sqs-event-consumer_lambda-code-deploy_code-deploy-app_7EC26991: Modifications complete after 1s [id=0ae9c91d-542a-4091-b93d-caf96fc81cb6:TransactionalEmails-Dev-Sqs-Event-Consumer-Lambda]
aws_codedeploy_deployment_group.events_sqs-event-consumer_lambda-code-deploy_code-deployment-group_BF92F57F: Modifying... [id=0a60418b-4b2f-41ab-b64b-f6125a782f5e]
aws_codedeploy_deployment_group.events_sqs-event-consumer_lambda-code-deploy_code-deployment-group_BF92F57F: Modifications complete after 0s [id=0a60418b-4b2f-41ab-b64b-f6125a782f5e]
aws_sqs_queue_policy.transactional-email-sns-dlq-policy: Still modifying... [id=https://sqs.us-east-1.amazonaws.com/410...TransactionalEmails-Dev-SNS-Topics-DLQ, 10s elapsed]
aws_sqs_queue_policy.transactional-email-sns-sqs-policy: Still modifying... [id=https://sqs.us-east-1.amazonaws.com/410...nalEmails-Dev-Sqs-Event-Consumer-Queue, 10s elapsed]
aws_sqs_queue_policy.transactional-email-sns-dlq-policy: Still modifying... [id=https://sqs.us-east-1.amazonaws.com/410...TransactionalEmails-Dev-SNS-Topics-DLQ, 20s elapsed]
aws_sqs_queue_policy.transactional-email-sns-sqs-policy: Still modifying... [id=https://sqs.us-east-1.amazonaws.com/410...nalEmails-Dev-Sqs-Event-Consumer-Queue, 20s elapsed]
aws_sqs_queue_policy.transactional-email-sns-sqs-policy: Modifications complete after 25s [id=https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-Sqs-Event-Consumer-Queue]
aws_sqs_queue_policy.transactional-email-sns-dlq-policy: Modifications complete after 25s [id=https://sqs.us-east-1.amazonaws.com/410318598490/TransactionalEmails-Dev-SNS-Topics-DLQ]

Apply complete! Resources: 0 added, 5 changed, 0 destroyed.

:white_check_mark: Apply Succeeded (image-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 0 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/ImageAPI-Dev:60" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/ImageAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/imageapi-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/imageapi-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ImageAPI-Dev" -> (known after apply)
      ~ revision                 = 60 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "ImageAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ImageAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=ImageAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=003061cd3f1b286ff86c842925bd5a3f4a57651e]

Apply complete! Resources: 2 added, 0 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (push-server-cdk-dev)
CI link
Apply complete! Resources: 1 added, 1 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4 will be updated in-place
  ~ resource "aws_ecs_service" "application_ecs_service_ecs-service_A8BAB5F4" {
        id                                 = "arn:aws:ecs:us-east-1:410318598490:service/Push-Dev/Push-Dev"
        name                               = "Push-Dev"
        tags                               = {
            "environment" = "Dev"
            "service"     = "Push"
        }
      ~ task_definition                    = "arn:aws:ecs:us-east-1:410318598490:task-definition/Push-Dev:17" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/Push-Dev:17" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/Push-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/push-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/push-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "Push-Dev" -> (known after apply)
      ~ revision                 = 17 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "Push"
        }
        # (10 unchanged attributes hidden)
    }

Plan: 1 to add, 1 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=Push-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=Push-Dev]
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4: Modifying... [id=arn:aws:ecs:us-east-1:410318598490:service/Push-Dev/Push-Dev]
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4: Modifications complete after 1s [id=arn:aws:ecs:us-east-1:410318598490:service/Push-Dev/Push-Dev]

Apply complete! Resources: 1 added, 1 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (shareable-lists-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 2 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21 will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21" {
      ~ alarm_actions             = [
          + "",
        ]
        id                        = "slapi-dev-query-0"
      ~ ok_actions                = [
          + "",
        ]
        tags                      = {}
        # (16 unchanged attributes hidden)
    }

  # aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7 will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7" {
      ~ alarm_actions             = [
          + "",
        ]
        id                        = "slapi-dev-uptime-0"
      ~ ok_actions                = [
          + "",
        ]
        tags                      = {}
        # (16 unchanged attributes hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/ShareableListsApi-Dev:175" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/ShareableListsApi-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ShareableListsApi-Dev" -> (known after apply)
      ~ revision                 = 175 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "ShareableListsApi"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 2 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ShareableListsApi-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifying... [id=slapi-dev-uptime-0]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifying... [id=slapi-dev-query-0]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifications complete after 0s [id=slapi-dev-uptime-0]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifications complete after 1s [id=slapi-dev-query-0]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 1s [id=ShareableListsApi-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=4b03879166cbf9384b5af24acd5c30f67fbd5c3a]

Apply complete! Resources: 2 added, 2 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (account-data-deleter-cdk-dev)
CI link
Apply complete! Resources: 2 added, 2 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07 must be replaced
-/+ resource "aws_ecs_task_definition" "data-deleter-app_application_ecs_service_ecs-task_243DED07" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/AccountDataDeleter-Dev:120" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/AccountDataDeleter-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/accountdatadeleter-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/accountdatadeleter-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "AccountDataDeleter-Dev" -> (known after apply)
      ~ revision                 = 120 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "AccountDataDeleter"
        }
        # (10 unchanged attributes hidden)
    }

  # aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B will be updated in-place
  ~ resource "aws_lambda_function" "batchdeletelambda_batch-delete-lambda_9A38729B" {
        id                             = "AccountDataDeleter-Dev-BatchDeleteLambda-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:AccountDataDeleter-Dev-BatchDeleteLambda-Function:160" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:410318598490:function:AccountDataDeleter-Dev-BatchDeleteLambda-Function:160/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Dev"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "160" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"     = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C will be updated in-place
  ~ resource "aws_lambda_function" "event-consumer_sqs-event-consumer_lambda_2F35855C" {
        id                             = "AccountDataDeleter-Dev-Sqs-Event-Consumer-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:AccountDataDeleter-Dev-Sqs-Event-Consumer-Function:203" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:410318598490:function:AccountDataDeleter-Dev-Sqs-Event-Consumer-Function:203/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Dev"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "203" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"                      = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09 will be created
  + resource "local_file" "data-deleter-app_application_ecs_service_appspec_5FC42C09" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 2 to change, 1 to destroy.
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Destroying... [id=AccountDataDeleter-Dev]
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Destruction complete after 0s
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Creating...
aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B: Modifying... [id=AccountDataDeleter-Dev-BatchDeleteLambda-Function]
aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C: Modifying... [id=AccountDataDeleter-Dev-Sqs-Event-Consumer-Function]
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Creation complete after 0s [id=AccountDataDeleter-Dev]
local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09: Creating...
local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09: Creation complete after 0s [id=3b27a6e16dae3a26d1738ccb962b68c868c3fc77]
aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B: Modifications complete after 7s [id=AccountDataDeleter-Dev-BatchDeleteLambda-Function]
aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C: Modifications complete after 8s [id=AccountDataDeleter-Dev-Sqs-Event-Consumer-Function]

Apply complete! Resources: 2 added, 2 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (user-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 0 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserAPI-Dev:97" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/userapi-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/userapi-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "UserAPI-Dev" -> (known after apply)
      ~ revision                 = 97 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "UserAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=UserAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=UserAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=72957717f1546855de735f36e499f607e7de7616]

Apply complete! Resources: 2 added, 0 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (fxa-webhook-proxy-cdk-dev)
CI link
Apply complete! Resources: 1 added, 3 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  ~ update in-place
+/- create replacement and then destroy

Terraform will perform the following actions:

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-03-07T00:41:44Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:410318598490:ctafu7cig4/" -> (known after apply)
      ~ id            = "hl6fvg" -> (known after apply)
      ~ invoke_url    = "https://ctafu7cig4.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1709772062786" -> "1709826855225"
            # (1 unchanged element hidden)
        }
        # (1 unchanged attribute hidden)
    }

  # aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9 will be updated in-place
  ~ resource "aws_api_gateway_stage" "apigateway-lambda_api-gateway-stage_E95B0DF9" {
      ~ deployment_id         = "hl6fvg" -> (known after apply)
        id                    = "ags-ctafu7cig4-dev"
        tags                  = {}
        # (9 unchanged attributes hidden)
    }

  # aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171 will be updated in-place
  ~ resource "aws_lambda_function" "apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171" {
        id                             = "FxAWebhookProxy-Dev-ApiGateway-FxA-Events-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:FxAWebhookProxy-Dev-ApiGateway-FxA-Events-Function:180" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:410318598490:function:FxAWebhookProxy-Dev-ApiGateway-FxA-Events-Function:180/invocations" -> (known after apply)
        tags                           = {}
      ~ version                        = "180" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"            = (sensitive value)
                # (3 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609 will be updated in-place
  ~ resource "aws_lambda_function" "proxy-lambda_fxa-events-sqs-lambda_39345609" {
        id                             = "FxAWebhookProxy-Dev-Sqs-FxA-Events-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:FxAWebhookProxy-Dev-Sqs-FxA-Events-Function:191" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:410318598490:function:FxAWebhookProxy-Dev-Sqs-FxA-Events-Function:191/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Dev"
            "service"     = "FxAWebhookProxy"
        }
      ~ version                        = "191" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"     = (sensitive value)
                # (4 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

Plan: 1 to add, 3 to change, 1 to destroy.
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171: Modifying... [id=FxAWebhookProxy-Dev-ApiGateway-FxA-Events-Function]
aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609: Modifying... [id=FxAWebhookProxy-Dev-Sqs-FxA-Events-Function]
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171: Modifications complete after 7s [id=FxAWebhookProxy-Dev-ApiGateway-FxA-Events-Function]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creating...
aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609: Modifications complete after 7s [id=FxAWebhookProxy-Dev-Sqs-FxA-Events-Function]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creation complete after 1s [id=bfex47]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifying... [id=ags-ctafu7cig4-dev]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifications complete after 0s [id=ags-ctafu7cig4-dev]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 (deposed object eaf2ab09): Destroying... [id=hl6fvg]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Destruction complete after 0s

Apply complete! Resources: 1 added, 3 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (pocket-event-bridge-cdk-dev)
CI link
Apply complete! Resources: 31 added, 38 changed, 7 destroyed.

# ... The maximum length of GitHub Comment is 65536, so the content is omitted by tfcmt.
# ...

 Resources: 31 added, 38 changed, 7 destroyed.

:white_check_mark: Apply Succeeded (annotations-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 3 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement
 <= read (data resources)

Terraform will perform the following actions:

  # data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD" {
      + id      = (known after apply)
      + json    = (known after apply)
      + version = "2012-10-17"

      + statement {
          + actions   = [
              + "logs:CreateLogGroup",
              + "logs:CreateLogStream",
              + "logs:DescribeLogGroups",
              + "logs:DescribeLogStreams",
              + "logs:PutLogEvents",
              + "xray:GetSamplingRules",
              + "xray:GetSamplingStatisticSummaries",
              + "xray:GetSamplingTargets",
              + "xray:PutTelemetryRecords",
              + "xray:PutTraceSegments",
            ]
          + effect    = "Allow"
          + resources = [
              + "*",
            ]
        }
      + statement {
          + actions   = [
              + "dynamodb:BatchGet*",
              + "dynamodb:BatchWrite*",
              + "dynamodb:Delete*",
              + "dynamodb:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes",
              + "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes/*",
            ]
        }
      + statement {
          + actions   = [
              + "sqs:DeleteMessage",
              + "sqs:ReceiveMessage",
              + "sqs:SendMessage",
              + "sqs:SendMessageBatch",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:sqs:us-east-1:410318598490:AnnotationsAPI-Dev-Batch-Delete-Consumer-Queue",
            ]
        }
    }

  # aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21 will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21" {
      ~ alarm_actions             = [
          + "",
        ]
        id                        = "annot-dev-query-0"
      ~ ok_actions                = [
          + "",
        ]
        tags                      = {}
        # (16 unchanged attributes hidden)
    }

  # aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7 will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7" {
      ~ alarm_actions             = [
          + "",
        ]
        id                        = "annot-dev-uptime-0"
      ~ ok_actions                = [
          + "",
        ]
        tags                      = {}
        # (16 unchanged attributes hidden)
    }

  # aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF will be updated in-place
  ~ resource "aws_dynamodb_table" "dynamodb_highlight-notes_dynamodb_table_8BD520BF" {
        id                          = "ANNOT-Dev-highlight-notes"
        name                        = "ANNOT-Dev-highlight-notes"
        tags                        = {
            "environment" = "Dev"
            "service"     = "AnnotationsAPI"
        }
        # (9 unchanged attributes hidden)

      - global_secondary_index {
          - hash_key           = "userId" -> null
          - name               = "userId" -> null
          - non_key_attributes = [] -> null
          - projection_type    = "KEYS_ONLY" -> null
          - read_capacity      = 0 -> null
          - write_capacity     = 0 -> null
        }
      + global_secondary_index {
          + hash_key           = "userId"
          + name               = "userId"
          + non_key_attributes = []
          + projection_type    = "KEYS_ONLY"
          + read_capacity      = 5
          + write_capacity     = 5
        }

        # (4 unchanged blocks hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/AnnotationsAPI-Dev:107" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/AnnotationsAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/annotationsapi-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/annotationsapi-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "AnnotationsAPI-Dev" -> (known after apply)
      ~ revision                 = 107 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "AnnotationsAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6 will be updated in-place
  ~ resource "aws_iam_policy" "application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6" {
        id        = "arn:aws:iam::410318598490:policy/AnnotationsAPI-Dev-TaskRolePolicy"
        name      = "AnnotationsAPI-Dev-TaskRolePolicy"
      ~ policy    = jsonencode(
            {
              - Statement = [
                  - {
                      - Action   = [
                          - "xray:PutTraceSegments",
                          - "xray:PutTelemetryRecords",
                          - "xray:GetSamplingTargets",
                          - "xray:GetSamplingStatisticSummaries",
                          - "xray:GetSamplingRules",
                          - "logs:PutLogEvents",
                          - "logs:DescribeLogStreams",
                          - "logs:DescribeLogGroups",
                          - "logs:CreateLogStream",
                          - "logs:CreateLogGroup",
                        ]
                      - Effect   = "Allow"
                      - Resource = "*"
                    },
                  - {
                      - Action   = [
                          - "dynamodb:UpdateItem",
                          - "dynamodb:Scan",
                          - "dynamodb:Query",
                          - "dynamodb:PutItem",
                          - "dynamodb:Get*",
                          - "dynamodb:DescribeTable",
                          - "dynamodb:Delete*",
                          - "dynamodb:BatchWrite*",
                          - "dynamodb:BatchGet*",
                        ]
                      - Effect   = "Allow"
                      - Resource = [
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes/*",
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes",
                        ]
                    },
                  - {
                      - Action   = [
                          - "sqs:SendMessageBatch",
                          - "sqs:SendMessage",
                          - "sqs:ReceiveMessage",
                          - "sqs:DeleteMessage",
                        ]
                      - Effect   = "Allow"
                      - Resource = "arn:aws:sqs:us-east-1:410318598490:AnnotationsAPI-Dev-Batch-Delete-Consumer-Queue"
                    },
                ]
              - Version   = "2012-10-17"
            }
        ) -> (known after apply)
        tags      = {
            "environment" = "Dev"
            "service"     = "AnnotationsAPI"
        }
        # (4 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 4 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=AnnotationsAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifying... [id=annot-dev-uptime-0]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifying... [id=annot-dev-query-0]
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifying... [id=ANNOT-Dev-highlight-notes]
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifications complete after 0s [id=ANNOT-Dev-highlight-notes]
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Read complete after 1s [id=1635203112]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifications complete after 1s [id=annot-dev-uptime-0]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifications complete after 1s [id=annot-dev-query-0]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=AnnotationsAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=6d8104d7412bce9e46871532ac5d2890fe07440a]

Apply complete! Resources: 2 added, 3 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (list-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 0 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/ListAPI-Dev:199" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/ListAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/listapi-dev-app:85d8f64868e19485c386c83fd1ae4c689d3fe490" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/listapi-dev-app:99cd838959b10553802d18186d0839f44bbfc13e"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ListAPI-Dev" -> (known after apply)
      ~ revision                 = 199 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "ListAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ListAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=ListAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=df5d70ea7a053d5fe40487296473e4011fcc80bd]

Apply complete! Resources: 2 added, 0 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (user-list-search-cdk-dev)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # local_file.appspec will be created
  + resource "local_file" "appspec" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "node"
                                  + ContainerPort = 4000
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserListSearch-Dev-Apollo:131"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.appspec: Creating...
local_file.appspec: Creation complete after 0s [id=823a0ea047e48e253fe5c02b0fe13efd65dd4b0a]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Outputs:

workspace = "UserListSearch-Dev"

:white_check_mark: Apply Succeeded (image-api-cdk-dev)
CI link
Apply complete! Resources: 2 added, 0 changed, 1 destroyed.
 Resource actions are indicated with the following symbols:
  + create
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/ImageAPI-Dev:62" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/ImageAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "410318598490.dkr.ecr.us-east-1.amazonaws.com/imageapi-dev-app:eacba33008e4c1db0e149471285f763c4b924dd4" -> "410318598490.dkr.ecr.us-east-1.amazonaws.com/imageapi-dev-app:148fbcf0286b541ffacfa95bce0ea27fe9a13643"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                  - systemControls         = []
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ImageAPI-Dev" -> (known after apply)
      ~ revision                 = 62 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "ImageAPI"
        }
        # (10 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = (known after apply)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ImageAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=ImageAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=3a0216cd8584fb58ad9674128162b2c4708a0c1c]

Apply complete! Resources: 2 added, 0 changed, 1 destroyed.

:white_check_mark: Apply Succeeded (transactional-emails-cdk-dev)
CI link
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8 will be updated in-place
  ~ resource "aws_lambda_function" "events_sqs-event-consumer_lambda_3BE960B8" {
        id                             = "TransactionalEmails-Dev-Sqs-Event-Consumer-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:TransactionalEmails-Dev-Sqs-Event-Consumer-Function:218" -> (known after apply)
      ~ qualified_invoke_arn           = "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:410318598490:function:TransactionalEmails-Dev-Sqs-Event-Consumer-Function:218/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Dev"
            "service"     = "TransactionalEmails"
        }
      ~ version                        = "218" -> (known after apply)
        # (19 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              ~ "GIT_SHA"                            = (sensitive value)
                # (6 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8: Modifying... [id=TransactionalEmails-Dev-Sqs-Event-Consumer-Function]
aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8: Modifications complete after 6s [id=TransactionalEmails-Dev-Sqs-Event-Consumer-Function]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

:white_check_mark: Apply Succeeded (v3-proxy-api-cdk-dev)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
 Resource actions are indicated with the following symbols:
  + create