chore(state): moving state generation and use to s3

Goal
Migrate the mono repo state to s3 https://mozilla-hub.atlassian.net/browse/POCKET-9320

:x: Plan Failed (shared-snowplow-consumer-cdk)
CI link
Error: Required token could not be found

 Run the following command to generate a token for app.terraform.io:
     terraform login

  # aws_cloudwatch_metric_alarm.shared-snowplow-consumer-app_application_autoscaling_scale_in_alarm_A2935CCC will be created
  + resource "aws_cloudwatch_metric_alarm" "shared-snowplow-consumer-app_application_autoscaling_scale_in_alarm_A2935CCC" {
      + actions_enabled                       = true
      + alarm_actions                         = (known after apply)
      + alarm_description                     = "Alarm to reduce capacity if container CPU is low"
      + alarm_name                            = "SharedSnowplowConsumer-Prod Service Low CPU"
      + arn                                   = (known after apply)
      + comparison_operator                   = "LessThanThreshold"
      + dimensions                            = {
          + "ClusterName" = "SharedSnowplowConsumer-Prod"
          + "ServiceName" = "SharedSnowplowConsumer-Prod"
        }
      + evaluate_low_sample_count_percentiles = (known after apply)
      + evaluation_periods                    = 2
      + id                                    = (known after apply)
      + metric_name                           = "CPUUtilization"
      + namespace                             = "AWS/ECS"
      + period                                = 60
      + statistic                             = "Average"
      + tags                                  = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + threshold                             = 30
      + treat_missing_data                    = "notBreaching"
    }

  # aws_cloudwatch_metric_alarm.shared-snowplow-consumer-app_application_autoscaling_scale_out_alarm_EFA0BDC3 will be created
  + resource "aws_cloudwatch_metric_alarm" "shared-snowplow-consumer-app_application_autoscaling_scale_out_alarm_EFA0BDC3" {
      + actions_enabled                       = true
      + alarm_actions                         = (known after apply)
      + alarm_description                     = "Alarm to add capacity if container CPU is high"
      + alarm_name                            = "SharedSnowplowConsumer-Prod Service High CPU"
      + arn                                   = (known after apply)
      + comparison_operator                   = "GreaterThanThreshold"
      + dimensions                            = {
          + "ClusterName" = "SharedSnowplowConsumer-Prod"
          + "ServiceName" = "SharedSnowplowConsumer-Prod"
        }
      + evaluate_low_sample_count_percentiles = (known after apply)
      + evaluation_periods                    = 2
      + id                                    = (known after apply)
      + metric_name                           = "CPUUtilization"
      + namespace                             = "AWS/ECS"
      + period                                = 60
      + statistic                             = "Average"
      + tags                                  = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + threshold                             = 45
      + treat_missing_data                    = "notBreaching"
    }

  # aws_cloudwatch_metric_alarm.sharedsnowplowconsumer-prod-dlq-alarm will be created
  + resource "aws_cloudwatch_metric_alarm" "sharedsnowplowconsumer-prod-dlq-alarm" {
      + actions_enabled                       = true
      + alarm_actions                         = (known after apply)
      + alarm_description                     = "Number of messages >= 15"
      + alarm_name                            = "SharedSnowplowConsumer-Prod-SharedSnowplowConsumer-Prod-Dlq-Alarm"
      + arn                                   = (known after apply)
      + comparison_operator                   = "GreaterThanOrEqualToThreshold"
      + dimensions                            = {
          + "QueueName" = "SharedSnowplowConsumer-Prod-SNS-Topics-DLQ"
        }
      + evaluate_low_sample_count_percentiles = (known after apply)
      + evaluation_periods                    = 2
      + id                                    = (known after apply)
      + metric_name                           = "ApproximateNumberOfMessagesVisible"
      + namespace                             = "AWS/SQS"
      + ok_actions                            = (known after apply)
      + period                                = 900
      + statistic                             = "Sum"
      + tags_all                              = (known after apply)
      + threshold                             = 15
      + treat_missing_data                    = "missing"
    }

  # aws_codedeploy_app.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_8FE8F303 will be created
  + resource "aws_codedeploy_app" "shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_8FE8F303" {
      + application_id      = (known after apply)
      + arn                 = (known after apply)
      + compute_platform    = "ECS"
      + github_account_name = (known after apply)
      + id                  = (known after apply)
      + linked_to_github    = (known after apply)
      + name                = "SharedSnowplowConsumer-Prod-ECS"
      + tags                = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all            = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
    }

  # aws_codedeploy_deployment_group.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_6E78E722 will be created
  + resource "aws_codedeploy_deployment_group" "shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_6E78E722" {
      + app_name                    = "SharedSnowplowConsumer-Prod-ECS"
      + arn                         = (known after apply)
      + compute_platform            = (known after apply)
      + deployment_config_name      = "CodeDeployDefault.ECSAllAtOnce"
      + deployment_group_id         = (known after apply)
      + deployment_group_name       = "SharedSnowplowConsumer-Prod-ECS"
      + id                          = (known after apply)
      + outdated_instances_strategy = "UPDATE"
      + service_role_arn            = (known after apply)
      + tags                        = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                    = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }

      + auto_rollback_configuration {
          + enabled = true
          + events  = [
              + "DEPLOYMENT_FAILURE",
            ]
        }

      + blue_green_deployment_config {
          + deployment_ready_option {
              + action_on_timeout = "CONTINUE_DEPLOYMENT"
            }
          + terminate_blue_instances_on_deployment_success {
              + action                           = "TERMINATE"
              + termination_wait_time_in_minutes = 5
            }
        }

      + deployment_style {
          + deployment_option = "WITH_TRAFFIC_CONTROL"
          + deployment_type   = "BLUE_GREEN"
        }

      + ecs_service {
          + cluster_name = "SharedSnowplowConsumer-Prod"
          + service_name = "SharedSnowplowConsumer-Prod"
        }

      + load_balancer_info {
          + target_group_pair_info {
              + prod_traffic_route {
                  + listener_arns = (known after apply)
                }
              + target_group {
                  + name = (known after apply)
                }
              + target_group {
                  + name = (known after apply)
                }
            }
        }
    }

  # aws_codestarnotifications_notification_rule.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_67DBFB5C will be created
  + resource "aws_codestarnotifications_notification_rule" "shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_67DBFB5C" {
      + arn            = (known after apply)
      + detail_type    = "BASIC"
      + event_type_ids = [
          + "codedeploy-application-deployment-failed",
        ]
      + id             = (known after apply)
      + name           = "SharedSnowplowConsumer-Prod-ECS"
      + resource       = "arn:aws:codedeploy:us-east-1:996905175585:application:SharedSnowplowConsumer-Prod-ECS"
      + status         = "ENABLED"
      + tags           = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all       = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }

      + target {
          + address = "arn:aws:sns:us-east-1:996905175585:Backend-Prod-ChatBot"
          + status  = (known after apply)
          + type    = "SNS"
        }
    }

  # aws_ecr_lifecycle_policy.shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_5A709DFD will be created
  + resource "aws_ecr_lifecycle_policy" "shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_5A709DFD" {
      + id          = (known after apply)
      + policy      = jsonencode(
            {
              + rules = [
                  + {
                      + action       = {
                          + type = "expire"
                        }
                      + description  = "expire old images"
                      + rulePriority = 1
                      + selection    = {
                          + countNumber = 800
                          + countType   = "imageCountMoreThan"
                          + tagStatus   = "any"
                        }
                    },
                ]
            }
        )
      + registry_id = (known after apply)
      + repository  = "sharedsnowplowconsumer-prod-app"
    }

  # aws_ecr_repository.shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo_C47DCC29 will be created
  + resource "aws_ecr_repository" "shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo_C47DCC29" {
      + arn                  = (known after apply)
      + id                   = (known after apply)
      + image_tag_mutability = "MUTABLE"
      + name                 = "sharedsnowplowconsumer-prod-app"
      + registry_id          = (known after apply)
      + repository_url       = (known after apply)
      + tags                 = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all             = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }

      + image_scanning_configuration {
          + scan_on_push = true
        }
    }

  # aws_ecs_cluster.shared-snowplow-consumer-app_application_ecs_cluster_E189522B will be created
  + resource "aws_ecs_cluster" "shared-snowplow-consumer-app_application_ecs_cluster_E189522B" {
      + arn      = (known after apply)
      + id       = (known after apply)
      + name     = "SharedSnowplowConsumer-Prod"
      + tags     = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }

      + setting {
          + name  = "containerInsights"
          + value = "enabled"
        }
    }

  # aws_ecs_service.shared-snowplow-consumer-app_application_ecs_service_ecs-service_4DE3767A will be created
  + resource "aws_ecs_service" "shared-snowplow-consumer-app_application_ecs_service_ecs-service_4DE3767A" {
      + cluster                            = (known after apply)
      + deployment_maximum_percent         = 200
      + deployment_minimum_healthy_percent = 100
      + desired_count                      = 2
      + enable_ecs_managed_tags            = false
      + enable_execute_command             = false
      + iam_role                           = (known after apply)
      + id                                 = (known after apply)
      + launch_type                        = "FARGATE"
      + name                               = "SharedSnowplowConsumer-Prod"
      + platform_version                   = (known after apply)
      + propagate_tags                     = "SERVICE"
      + scheduling_strategy                = "REPLICA"
      + tags                               = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                           = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + task_definition                    = (known after apply)
      + triggers                           = (known after apply)
      + wait_for_steady_state              = false

      + deployment_controller {
          + type = "CODE_DEPLOY"
        }

      + load_balancer {
          + container_name   = "app"
          + container_port   = 4015
          + target_group_arn = (known after apply)
        }

      + network_configuration {
          + assign_public_ip = false
          + security_groups  = (known after apply)
          + subnets          = [
              + "subnet-610bdb3b",
              + "subnet-b2a036fa",
              + "subnet-cc66bde0",
              + "subnet-d09eb8ec",
            ]
        }
    }

  # aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B will be created
  + resource "aws_ecs_task_definition" "shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B" {
      + arn                      = (known after apply)
      + arn_without_revision     = (known after apply)
      + container_definitions    = (known after apply)
      + cpu                      = "512"
      + execution_role_arn       = (known after apply)
      + family                   = "SharedSnowplowConsumer-Prod"
      + id                       = (known after apply)
      + memory                   = "2048"
      + network_mode             = "awsvpc"
      + requires_compatibilities = [
          + "FARGATE",
        ]
      + revision                 = (known after apply)
      + skip_destroy             = true
      + tags                     = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                 = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + task_role_arn            = (known after apply)
    }

  # aws_iam_policy.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-role-policy_A2B67C8A will be created
  + resource "aws_iam_policy" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-role-policy_A2B67C8A" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "SharedSnowplowConsumer-Prod-TaskExecutionRolePolicy"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "secretsmanager:GetSecretValue",
                          + "kms:Decrypt",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:SharedSnowplowConsumer/Prod/*",
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:SharedSnowplowConsumer/Prod",
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:SharedSnowplowConsumer-Prod/*",
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:SharedSnowplowConsumer-Prod",
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:Shared/*",
                          + "arn:aws:secretsmanager:us-east-1:996905175585:secret:Shared",
                          + "arn:aws:kms:us-east-1:996905175585:key/fee9bd90-a01f-4212-8b69-9c149a7cdb15",
                        ]
                    },
                  + {
                      + Action   = "ssm:GetParameter*"
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:ssm:us-east-1:996905175585:parameter/SharedSnowplowConsumer/Prod/*",
                          + "arn:aws:ssm:us-east-1:996905175585:parameter/SharedSnowplowConsumer/Prod",
                        ]
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id   = (known after apply)
      + tags        = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all    = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
    }

  # aws_iam_policy.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role-policy_10D31114 will be created
  + resource "aws_iam_policy" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role-policy_10D31114" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "SharedSnowplowConsumer-Prod-TaskRolePolicy"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = (known after apply)
      + policy_id   = (known after apply)
      + tags        = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all    = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
    }

  # aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-execution-role_CD87AD67 will be created
  + resource "aws_iam_role" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-execution-role_CD87AD67" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "SharedSnowplowConsumer-Prod-TaskExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role_6BFBDB3C will be created
  + resource "aws_iam_role" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role_6BFBDB3C" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "SharedSnowplowConsumer-Prod-TaskRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_9A411340 will be created
  + resource "aws_iam_role" "shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_9A411340" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "codedeploy.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "SharedSnowplowConsumer-Prod-ECSCodeDeployRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-custom-attachment_0CF1CAB2 will be created
  + resource "aws_iam_role_policy_attachment" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-custom-attachment_0CF1CAB2" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_6610BEED will be created
  + resource "aws_iam_role_policy_attachment" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_6610BEED" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_D76A238C will be created
  + resource "aws_iam_role_policy_attachment" "shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_D76A238C" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_740EA775 will be created
  + resource "aws_iam_role_policy_attachment" "shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_740EA775" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS"
      + role       = "SharedSnowplowConsumer-Prod-ECSCodeDeployRole"
    }

  # aws_route53_record.shared-snowplow-consumer-app_application_alb_certificate_certificate_record_FA5168A0 will be created
  + resource "aws_route53_record" "shared-snowplow-consumer-app_application_alb_certificate_certificate_record_FA5168A0" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = (known after apply)
      + records         = (known after apply)
      + ttl             = 60
      + type            = (known after apply)
      + zone_id         = (known after apply)
    }

  # aws_route53_record.shared-snowplow-consumer-app_application_alb_record_9558B043 will be created
  + resource "aws_route53_record" "shared-snowplow-consumer-app_application_alb_record_9558B043" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "shared-snowplow-consumer.readitlater.com"
      + set_identifier  = "1"
      + type            = "A"
      + zone_id         = (known after apply)

      + alias {
          + evaluate_target_health = true
          + name                   = (known after apply)
          + zone_id                = (known after apply)
        }

      + weighted_routing_policy {
          + weight = 1
        }
    }

  # aws_route53_record.shared-snowplow-consumer-app_application_base_dns_subhosted_zone_ns_A5A92F9C will be created
  + resource "aws_route53_record" "shared-snowplow-consumer-app_application_base_dns_subhosted_zone_ns_A5A92F9C" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "shared-snowplow-consumer.readitlater.com"
      + records         = (known after apply)
      + ttl             = 86400
      + type            = "NS"
      + zone_id         = "Z2BHWTOWFVNW3M"
    }

  # aws_route53_zone.shared-snowplow-consumer-app_application_base_dns_subhosted_zone_F2BF377F will be created
  + resource "aws_route53_zone" "shared-snowplow-consumer-app_application_base_dns_subhosted_zone_F2BF377F" {
      + arn                 = (known after apply)
      + comment             = "Managed by Terraform"
      + force_destroy       = false
      + id                  = (known after apply)
      + name                = "shared-snowplow-consumer.readitlater.com"
      + name_servers        = (known after apply)
      + primary_name_server = (known after apply)
      + tags                = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all            = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + zone_id             = (known after apply)
    }

  # aws_security_group.shared-snowplow-consumer-app_application_application_load_balancer_alb_security_group_0793B1C8 will be created
  + resource "aws_security_group" "shared-snowplow-consumer-app_application_application_load_balancer_alb_security_group_0793B1C8" {
      + arn                    = (known after apply)
      + description            = "External security group  (Managed by Terraform)"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = "required"
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 443
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 443
            },
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 80
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = "SharedSnowplowConsumer-Prod-HTTP/S Security Group"
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Name"        = "SharedSnowplowConsumer-Prod-HTTP/S Security Group"
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all               = {
          + "Name"        = "SharedSnowplowConsumer-Prod-HTTP/S Security Group"
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + vpc_id                 = "vpc-867638e3"
    }

  # aws_security_group.shared-snowplow-consumer-app_application_ecs_service_ecs_security_group_7774AE75 will be created
  + resource "aws_security_group" "shared-snowplow-consumer-app_application_ecs_service_ecs_security_group_7774AE75" {
      + arn                    = (known after apply)
      + description            = "Internal ECS Security Group (Managed by Terraform)"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = "required"
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = []
              + description      = "required"
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = (known after apply)
              + self             = false
              + to_port          = 4015
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = "SharedSnowplowConsumer-Prod-ECSSecurityGroup"
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all               = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + vpc_id                 = "vpc-867638e3"
    }

  # aws_sns_topic.pagerduty_alarm-critical-topic_F1534579 will be created
  + resource "aws_sns_topic" "pagerduty_alarm-critical-topic_F1534579" {
      + arn                         = (known after apply)
      + beginning_archive_time      = (known after apply)
      + content_based_deduplication = false
      + fifo_topic                  = false
      + id                          = (known after apply)
      + name                        = "SharedSnowplowConsumer-Prod-Infrastructure-Alarm-Critical"
      + name_prefix                 = (known after apply)
      + owner                       = (known after apply)
      + policy                      = (known after apply)
      + signature_version           = (known after apply)
      + tags_all                    = (known after apply)
      + tracing_config              = (known after apply)
    }

  # aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3 will be created
  + resource "aws_sns_topic" "pagerduty_alarm-non-critical-topic_53C1A3B3" {
      + arn                         = (known after apply)
      + beginning_archive_time      = (known after apply)
      + content_based_deduplication = false
      + fifo_topic                  = false
      + id                          = (known after apply)
      + name                        = "SharedSnowplowConsumer-Prod-Infrastructure-Alarm-Non-Critical"
      + name_prefix                 = (known after apply)
      + owner                       = (known after apply)
      + policy                      = (known after apply)
      + signature_version           = (known after apply)
      + tags_all                    = (known after apply)
      + tracing_config              = (known after apply)
    }

  # aws_sns_topic_subscription.CollectionEventTopic-sns-subscription will be created
  + resource "aws_sns_topic_subscription" "CollectionEventTopic-sns-subscription" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 1
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = false
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "sqs"
      + raw_message_delivery            = false
      + redrive_policy                  = (known after apply)
      + topic_arn                       = "arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-CollectionEventTopic"
    }

  # aws_sns_topic_subscription.ProspectEventTopic-sns-subscription will be created
  + resource "aws_sns_topic_subscription" "ProspectEventTopic-sns-subscription" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 1
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = false
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "sqs"
      + raw_message_delivery            = false
      + redrive_policy                  = (known after apply)
      + topic_arn                       = "arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-ProspectEventTopic"
    }

  # aws_sns_topic_subscription.ShareableListEventTopic-sns-subscription will be created
  + resource "aws_sns_topic_subscription" "ShareableListEventTopic-sns-subscription" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 1
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = false
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "sqs"
      + raw_message_delivery            = false
      + redrive_policy                  = (known after apply)
      + topic_arn                       = "arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-ShareableListEventTopic"
    }

  # aws_sns_topic_subscription.ShareableListItemEventTopic-sns-subscription will be created
  + resource "aws_sns_topic_subscription" "ShareableListItemEventTopic-sns-subscription" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 1
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = false
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "sqs"
      + raw_message_delivery            = false
      + redrive_policy                  = (known after apply)
      + topic_arn                       = "arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-ShareableListItemEventTopic"
    }

  # aws_sns_topic_subscription.UserEventTopic-sns-subscription will be created
  + resource "aws_sns_topic_subscription" "UserEventTopic-sns-subscription" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 1
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = false
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "sqs"
      + raw_message_delivery            = false
      + redrive_policy                  = (known after apply)
      + topic_arn                       = "arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-UserEventTopic"
    }

  # aws_sqs_queue.shared-event-consumer will be created
  + resource "aws_sqs_queue" "shared-event-consumer" {
      + arn                               = (known after apply)
      + content_based_deduplication       = false
      + deduplication_scope               = (known after apply)
      + delay_seconds                     = 0
      + fifo_queue                        = false
      + fifo_throughput_limit             = (known after apply)
      + id                                = (known after apply)
      + kms_data_key_reuse_period_seconds = (known after apply)
      + max_message_size                  = 262144
      + message_retention_seconds         = 345600
      + name                              = "SharedSnowplowConsumer-Prod-SharedEventConsumer-Queue"
      + name_prefix                       = (known after apply)
      + policy                            = (known after apply)
      + receive_wait_time_seconds         = 0
      + redrive_allow_policy              = (known after apply)
      + redrive_policy                    = (known after apply)
      + sqs_managed_sse_enabled           = (known after apply)
      + tags                              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                          = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + url                               = (known after apply)
      + visibility_timeout_seconds        = 30
    }

  # aws_sqs_queue.sns-topic-dlq will be created
  + resource "aws_sqs_queue" "sns-topic-dlq" {
      + arn                               = (known after apply)
      + content_based_deduplication       = false
      + deduplication_scope               = (known after apply)
      + delay_seconds                     = 0
      + fifo_queue                        = false
      + fifo_throughput_limit             = (known after apply)
      + id                                = (known after apply)
      + kms_data_key_reuse_period_seconds = (known after apply)
      + max_message_size                  = 262144
      + message_retention_seconds         = 345600
      + name                              = "SharedSnowplowConsumer-Prod-SNS-Topics-DLQ"
      + name_prefix                       = (known after apply)
      + policy                            = (known after apply)
      + receive_wait_time_seconds         = 0
      + redrive_allow_policy              = (known after apply)
      + redrive_policy                    = (known after apply)
      + sqs_managed_sse_enabled           = (known after apply)
      + tags                              = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + tags_all                          = {
          + "environment" = "Prod"
          + "service"     = "SharedSnowplowConsumer"
        }
      + url                               = (known after apply)
      + visibility_timeout_seconds        = 30
    }

  # aws_sqs_queue_policy.shared-snowplow-consumer-sns-dlq-policy will be created
  + resource "aws_sqs_queue_policy" "shared-snowplow-consumer-sns-dlq-policy" {
      + id        = (known after apply)
      + policy    = (known after apply)
      + queue_url = (known after apply)
    }

  # aws_sqs_queue_policy.shared-snowplow-consumer-sns-sqs-policy will be created
  + resource "aws_sqs_queue_policy" "shared-snowplow-consumer-sns-sqs-policy" {
      + id        = (known after apply)
      + policy    = (known after apply)
      + queue_url = (known after apply)
    }

  # 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: 53 to add, 0 to change, 0 to destroy.

Create

aws_acm_certificate.shared-snowplow-consumer-app_application_alb_certificate_7A543611
aws_acm_certificate_validation.shared-snowplow-consumer-app_application_alb_certificate_certificate_validation_0A8F4C89
aws_alb.shared-snowplow-consumer-app_application_application_load_balancer_alb_FFECA3E0
aws_alb_listener.shared-snowplow-consumer-app_application_listener_http_78D658C8
aws_alb_listener.shared-snowplow-consumer-app_application_listener_https_D2F12616
aws_alb_listener_rule.shared-snowplow-consumer-app_application_ecs_service_listener_rule_42D25C4D
aws_alb_target_group.shared-snowplow-consumer-app_application_ecs_service_blue_target_group_ecs_target_group_13867750
aws_alb_target_group.shared-snowplow-consumer-app_application_ecs_service_green_target_group_ecs_target_group_BFDC5A80
aws_appautoscaling_policy.shared-snowplow-consumer-app_application_autoscaling_scale_in_policy_5FED7B33
aws_appautoscaling_policy.shared-snowplow-consumer-app_application_autoscaling_scale_out_policy_43437361
aws_appautoscaling_target.shared-snowplow-consumer-app_application_autoscaling_autoscaling_target_E0F1D1EF
aws_cloudwatch_dashboard.shared-snowplow-consumer-app_application_cloudwatch-dashboard_8DFBB8D3
aws_cloudwatch_log_group.shared-snowplow-consumer-app_app-log-group_3D66A20E
aws_cloudwatch_log_group.shared-snowplow-consumer-app_aws-otel-collector-log-group_408C8F4B
aws_cloudwatch_metric_alarm.shared-snowplow-consumer-app_application_alarm-httptarget5xxerrorrate_802C465E
aws_cloudwatch_metric_alarm.shared-snowplow-consumer-app_application_autoscaling_scale_in_alarm_A2935CCC
aws_cloudwatch_metric_alarm.shared-snowplow-consumer-app_application_autoscaling_scale_out_alarm_EFA0BDC3
aws_cloudwatch_metric_alarm.sharedsnowplowconsumer-prod-dlq-alarm
aws_codedeploy_app.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_8FE8F303
aws_codedeploy_deployment_group.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_6E78E722
aws_codestarnotifications_notification_rule.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_67DBFB5C
aws_ecr_lifecycle_policy.shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_5A709DFD
aws_ecr_repository.shared-snowplow-consumer-app_application_ecs_service_ecr-app_ecr-repo_C47DCC29
aws_ecs_cluster.shared-snowplow-consumer-app_application_ecs_cluster_E189522B
aws_ecs_service.shared-snowplow-consumer-app_application_ecs_service_ecs-service_4DE3767A
aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B
aws_iam_policy.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-role-policy_A2B67C8A
aws_iam_policy.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role-policy_10D31114
aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-execution-role_CD87AD67
aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-role_6BFBDB3C
aws_iam_role.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_9A411340
aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-custom-attachment_0CF1CAB2
aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_6610BEED
aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_D76A238C
aws_iam_role_policy_attachment.shared-snowplow-consumer-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_740EA775
aws_route53_record.shared-snowplow-consumer-app_application_alb_certificate_certificate_record_FA5168A0
aws_route53_record.shared-snowplow-consumer-app_application_alb_record_9558B043
aws_route53_record.shared-snowplow-consumer-app_application_base_dns_subhosted_zone_ns_A5A92F9C
aws_route53_zone.shared-snowplow-consumer-app_application_base_dns_subhosted_zone_F2BF377F
aws_security_group.shared-snowplow-consumer-app_application_application_load_balancer_alb_security_group_0793B1C8
aws_security_group.shared-snowplow-consumer-app_application_ecs_service_ecs_security_group_7774AE75
aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
aws_sns_topic_subscription.CollectionEventTopic-sns-subscription
aws_sns_topic_subscription.ProspectEventTopic-sns-subscription
aws_sns_topic_subscription.ShareableListEventTopic-sns-subscription
aws_sns_topic_subscription.ShareableListItemEventTopic-sns-subscription
aws_sns_topic_subscription.UserEventTopic-sns-subscription
aws_sqs_queue.shared-event-consumer
aws_sqs_queue.sns-topic-dlq
aws_sqs_queue_policy.shared-snowplow-consumer-sns-dlq-policy
aws_sqs_queue_policy.shared-snowplow-consumer-sns-sqs-policy
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9

Plan Result (parser-graphql-wrapper-cdk)
CI link
Plan: 55 to add, 0 to change, 0 to destroy.

Create

aws_acm_certificate.application_alb_certificate_93966247
aws_acm_certificate_validation.application_alb_certificate_certificate_validation_25DAB195
aws_alb.application_application_load_balancer_alb_05EA9801
aws_alb_listener.application_listener_http_D74EC0ED
aws_alb_listener.application_listener_https_D31CB055
aws_alb_listener_rule.application_ecs_service_listener_rule_903F815F
aws_alb_target_group.application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B
aws_alb_target_group.application_ecs_service_green_target_group_ecs_target_group_4E06DCA6
aws_appautoscaling_policy.application_autoscaling_scale_in_policy_BF273511
aws_appautoscaling_policy.application_autoscaling_scale_out_policy_D03900A2
aws_appautoscaling_target.application_autoscaling_autoscaling_target_42BF5C99
aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED
aws_cloudwatch_log_group.app-log-group
aws_cloudwatch_log_group.aws-otel-collector-log-group
aws_cloudwatch_metric_alarm.application_alarm-httpresponsetime_9124C30A
aws_cloudwatch_metric_alarm.application_alarm-httptarget5xxerrorrate_F94D87C0
aws_cloudwatch_metric_alarm.application_autoscaling_scale_in_alarm_850BE3A1
aws_cloudwatch_metric_alarm.application_autoscaling_scale_out_alarm_E40FCBA0
aws_codedeploy_app.application_ecs_service_ecs_codedeploy_ecs_code_deploy_C2F7CBCF
aws_codedeploy_deployment_group.application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_48384247
aws_codestarnotifications_notification_rule.application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_CB44EADE
aws_ecr_lifecycle_policy.application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_CCDF75B7
aws_ecr_repository.application_ecs_service_ecr-app_ecr-repo_ABFE17F0
aws_ecs_cluster.application_ecs_cluster_4DC6EFB3
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4
aws_elasticache_replication_group.redis_elasticache_replication_group_6DE00446
aws_elasticache_subnet_group.redis_elasticache_subnet_group_EA2B92B2
aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-execution-role-policy_2D469A77
aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6
aws_iam_role.application_ecs_service_ecs-iam_ecs-execution-role_FB754BAA
aws_iam_role.application_ecs_service_ecs-iam_ecs-task-role_A72990ED
aws_iam_role.application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_175DB7D3
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-custom-attachment_F8DDD355
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_046B7E2E
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_99A621FF
aws_iam_role_policy_attachment.application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_1A1D5725
aws_route53_record.application_alb_certificate_certificate_record_51B45CF2
aws_route53_record.application_alb_record_8EA9D3F9
aws_route53_record.application_base_dns_subhosted_zone_ns_DFB88A22
aws_route53_zone.application_base_dns_subhosted_zone_77521D1C
aws_security_group.application_application_load_balancer_alb_security_group_7B45D070
aws_security_group.application_ecs_service_ecs_security_group_231C6B1E
aws_security_group.redis_elasticache_security_group_24BFB83E
aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B
local_file.application_ecs_service_appspec_94386B9C
pagerduty_service.pagerduty_pagerduty-critical_464EE7CD
pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197

Change Result (Click me)

  # aws_acm_certificate.application_alb_certificate_93966247 will be created
  + resource "aws_acm_certificate" "application_alb_certificate_93966247" {
      + arn                       = (known after apply)
      + domain_name               = "parser-graphql-wrapper.readitlater.com"
      + domain_validation_options = [
          + {
              + domain_name           = "parser-graphql-wrapper.readitlater.com"
              + resource_record_name  = (known after apply)
              + resource_record_type  = (known after apply)
              + resource_record_value = (known after apply)
            },
        ]
      + id                        = (known after apply)
      + key_algorithm             = (known after apply)
      + not_after                 = (known after apply)
      + not_before                = (known after apply)
      + pending_renewal           = (known after apply)
      + renewal_eligibility       = (known after apply)
      + renewal_summary           = (known after apply)
      + status                    = (known after apply)
      + subject_alternative_names = [
          + "parser-graphql-wrapper.readitlater.com",
        ]
      + tags                      = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all                  = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + type                      = (known after apply)
      + validation_emails         = (known after apply)
      + validation_method         = "DNS"
    }

  # aws_acm_certificate_validation.application_alb_certificate_certificate_validation_25DAB195 will be created
  + resource "aws_acm_certificate_validation" "application_alb_certificate_certificate_validation_25DAB195" {
      + certificate_arn         = (known after apply)
      + id                      = (known after apply)
      + validation_record_fqdns = (known after apply)
    }

  # aws_alb.application_application_load_balancer_alb_05EA9801 will be created
  + resource "aws_alb" "application_application_load_balancer_alb_05EA9801" {
      + arn                                                          = (known after apply)
      + arn_suffix                                                   = (known after apply)
      + desync_mitigation_mode                                       = "defensive"
      + dns_name                                                     = (known after apply)
      + drop_invalid_header_fields                                   = false
      + enable_deletion_protection                                   = false
      + enable_http2                                                 = true
      + enable_tls_version_and_cipher_suite_headers                  = false
      + enable_waf_fail_open                                         = false
      + enable_xff_client_port                                       = false
      + enforce_security_group_inbound_rules_on_private_link_traffic = (known after apply)
      + id                                                           = (known after apply)
      + idle_timeout                                                 = 60
      + internal                                                     = true
      + ip_address_type                                              = (known after apply)
      + load_balancer_type                                           = "application"
      + name                                                         = (known after apply)
      + name_prefix                                                  = "PARSER"
      + preserve_host_header                                         = false
      + security_groups                                              = (known after apply)
      + subnets                                                      = [
          + "subnet-610bdb3b",
          + "subnet-b2a036fa",
          + "subnet-cc66bde0",
          + "subnet-d09eb8ec",
        ]
      + tags                                                         = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all                                                     = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + vpc_id                                                       = (known after apply)
      + xff_header_processing_mode                                   = "append"
      + zone_id                                                      = (known after apply)
    }

  # aws_alb_listener.application_listener_http_D74EC0ED will be created
  + resource "aws_alb_listener" "application_listener_http_D74EC0ED" {
      + arn               = (known after apply)
      + id                = (known after apply)
      + load_balancer_arn = (known after apply)
      + port              = 80
      + protocol          = "HTTP"
      + ssl_policy        = (known after apply)
      + tags              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all          = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }

      + default_action {
          + order = (known after apply)
          + type  = "redirect"

          + redirect {
              + host        = "#{host}"
              + path        = "/#{path}"
              + port        = "443"
              + protocol    = "HTTPS"
              + query       = "#{query}"
              + status_code = "HTTP_301"
            }
        }
    }

  # aws_alb_listener.application_listener_https_D31CB055 will be created
  + resource "aws_alb_listener" "application_listener_https_D31CB055" {
      + arn               = (known after apply)
      + certificate_arn   = (known after apply)
      + id                = (known after apply)
      + load_balancer_arn = (known after apply)
      + port              = 443
      + protocol          = "HTTPS"
      + ssl_policy        = "ELBSecurityPolicy-TLS-1-1-2017-01"
      + tags              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all          = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }

      + default_action {
          + order = (known after apply)
          + type  = "fixed-response"

          + fixed_response {
              + content_type = "text/plain"
              + status_code  = "503"
            }
        }
    }

  # aws_alb_listener_rule.application_ecs_service_listener_rule_903F815F will be created
  + resource "aws_alb_listener_rule" "application_ecs_service_listener_rule_903F815F" {
      + arn          = (known after apply)
      + id           = (known after apply)
      + listener_arn = (known after apply)
      + priority     = 1
      + tags         = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all     = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }

      + action {
          + order            = (known after apply)
          + target_group_arn = (known after apply)
          + type             = "forward"
        }

      + condition {
          + path_pattern {
              + values = [
                  + "*",
                ]
            }
        }
    }

  # aws_alb_target_group.application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B will be created
  + resource "aws_alb_target_group" "application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B" {
      + arn                                = (known after apply)
      + arn_suffix                         = (known after apply)
      + connection_termination             = (known after apply)
      + deregistration_delay               = "120"
      + id                                 = (known after apply)
      + ip_address_type                    = (known after apply)
      + lambda_multi_value_headers_enabled = false
      + load_balancing_algorithm_type      = (known after apply)
      + load_balancing_anomaly_mitigation  = (known after apply)
      + load_balancing_cross_zone_enabled  = (known after apply)
      + name                               = (known after apply)
      + name_prefix                        = "PARSER"
      + port                               = 80
      + preserve_client_ip                 = (known after apply)
      + protocol                           = "HTTP"
      + protocol_version                   = (known after apply)
      + proxy_protocol_v2                  = false
      + slow_start                         = 0
      + tags                               = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
          + "type"        = "blue"
        }
      + tags_all                           = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
          + "type"        = "blue"
        }
      + target_type                        = "ip"
      + vpc_id                             = "vpc-867638e3"

      + health_check {
          + enabled             = true
          + healthy_threshold   = 5
          + interval            = 15
          + matcher             = (known after apply)
          + path                = "/.well-known/apollo/server-health"
          + port                = "traffic-port"
          + protocol            = "HTTP"
          + timeout             = (known after apply)
          + unhealthy_threshold = 3
        }
    }

  # aws_alb_target_group.application_ecs_service_green_target_group_ecs_target_group_4E06DCA6 will be created
  + resource "aws_alb_target_group" "application_ecs_service_green_target_group_ecs_target_group_4E06DCA6" {
      + arn                                = (known after apply)
      + arn_suffix                         = (known after apply)
      + connection_termination             = (known after apply)
      + deregistration_delay               = "120"
      + id                                 = (known after apply)
      + ip_address_type                    = (known after apply)
      + lambda_multi_value_headers_enabled = false
      + load_balancing_algorithm_type      = (known after apply)
      + load_balancing_anomaly_mitigation  = (known after apply)
      + load_balancing_cross_zone_enabled  = (known after apply)
      + name                               = (known after apply)
      + name_prefix                        = "PARSER"
      + port                               = 80
      + preserve_client_ip                 = (known after apply)
      + protocol                           = "HTTP"
      + protocol_version                   = (known after apply)
      + proxy_protocol_v2                  = false
      + slow_start                         = 0
      + tags                               = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
          + "type"        = "green"
        }
      + tags_all                           = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
          + "type"        = "green"
        }
      + target_type                        = "ip"
      + vpc_id                             = "vpc-867638e3"

      + health_check {
          + enabled             = true
          + healthy_threshold   = 5
          + interval            = 15
          + matcher             = (known after apply)
          + path                = "/.well-known/apollo/server-health"
          + port                = "traffic-port"
          + protocol            = "HTTP"
          + timeout             = (known after apply)
          + unhealthy_threshold = 3
        }
    }

  # aws_appautoscaling_policy.application_autoscaling_scale_in_policy_BF273511 will be created
  + resource "aws_appautoscaling_policy" "application_autoscaling_scale_in_policy_BF273511" {
      + alarm_arns         = (known after apply)
      + arn                = (known after apply)
      + id                 = (known after apply)
      + name               = "ParserGraphQLWrapper-Prod-ScaleInPolicy"
      + policy_type        = "StepScaling"
      + resource_id        = "service/ParserGraphQLWrapper-Prod/ParserGraphQLWrapper-Prod"
      + scalable_dimension = "ecs:service:DesiredCount"
      + service_namespace  = "ecs"

      + step_scaling_policy_configuration {
          + adjustment_type         = "ChangeInCapacity"
          + cooldown                = 60
          + metric_aggregation_type = "Average"

          + step_adjustment {
              + metric_interval_upper_bound = "0"
              + scaling_adjustment          = -1
            }
        }
    }

  # aws_appautoscaling_policy.application_autoscaling_scale_out_policy_D03900A2 will be created
  + resource "aws_appautoscaling_policy" "application_autoscaling_scale_out_policy_D03900A2" {
      + alarm_arns         = (known after apply)
      + arn                = (known after apply)
      + id                 = (known after apply)
      + name               = "ParserGraphQLWrapper-Prod-ScaleOutPolicy"
      + policy_type        = "StepScaling"
      + resource_id        = "service/ParserGraphQLWrapper-Prod/ParserGraphQLWrapper-Prod"
      + scalable_dimension = "ecs:service:DesiredCount"
      + service_namespace  = "ecs"

      + step_scaling_policy_configuration {
          + adjustment_type         = "ChangeInCapacity"
          + cooldown                = 60
          + metric_aggregation_type = "Average"

          + step_adjustment {
              + metric_interval_lower_bound = "0"
              + scaling_adjustment          = 2
            }
        }
    }

  # aws_appautoscaling_target.application_autoscaling_autoscaling_target_42BF5C99 will be created
  + resource "aws_appautoscaling_target" "application_autoscaling_autoscaling_target_42BF5C99" {
      + arn                = (known after apply)
      + id                 = (known after apply)
      + max_capacity       = 10
      + min_capacity       = 4
      + resource_id        = "service/ParserGraphQLWrapper-Prod/ParserGraphQLWrapper-Prod"
      + role_arn           = (known after apply)
      + scalable_dimension = "ecs:service:DesiredCount"
      + service_namespace  = "ecs"
      + tags_all           = (known after apply)
    }

  # aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED will be created
  + resource "aws_cloudwatch_dashboard" "application_cloudwatch-dashboard_1F3DC0ED" {
      + dashboard_arn  = (known after apply)
      + dashboard_body = (known after apply)
      + dashboard_name = "ParserGraphQLWrapper-Prod"
      + id             = (known after apply)
    }

  # aws_cloudwatch_log_group.app-log-group will be created
  + resource "aws_cloudwatch_log_group" "app-log-group" {
      + arn               = (known after apply)
      + id                = (known after apply)
      + log_group_class   = (known after apply)
      + name              = "/Backend/ParserGraphQLWrapper-Prod/ecs/app"
      + name_prefix       = (known after apply)
      + retention_in_days = 90
      + skip_destroy      = true
      + tags              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all          = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
    }

  # aws_cloudwatch_log_group.aws-otel-collector-log-group will be created
  + resource "aws_cloudwatch_log_group" "aws-otel-collector-log-group" {
      + arn               = (known after apply)
      + id                = (known after apply)
      + log_group_class   = (known after apply)
      + name              = "/Backend/ParserGraphQLWrapper-Prod/ecs/aws-otel-collector"
      + name_prefix       = (known after apply)
      + retention_in_days = 90
      + skip_destroy      = true
      + tags              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all          = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
    }

  # aws_cloudwatch_metric_alarm.application_alarm-httpresponsetime_9124C30A will be created
  + resource "aws_cloudwatch_metric_alarm" "application_alarm-httpresponsetime_9124C30A" {
      + actions_enabled                       = true
      + alarm_description                     = "Runbook: https://getpocket.atlassian.net/l/c/w2X57Zyu"
      + alarm_name                            = "ParserGraphQLWrapper-Prod-Alarm-HTTPResponseTime"
      + arn                                   = (known after apply)
      + comparison_operator                   = "GreaterThanThreshold"
      + datapoints_to_alarm                   = 4
      + dimensions                            = (known after apply)
      + evaluate_low_sample_count_percentiles = (known after apply)
      + evaluation_periods                    = 4
      + id                                    = (known after apply)
      + metric_name                           = "TargetResponseTime"
      + namespace                             = "AWS/ApplicationELB"
      + period                                = 900
      + statistic                             = "Average"
      + tags                                  = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all                              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + threshold                             = 0.5
      + treat_missing_data                    = "missing"
    }

  # aws_cloudwatch_metric_alarm.application_alarm-httptarget5xxerrorrate_F94D87C0 will be created
  + resource "aws_cloudwatch_metric_alarm" "application_alarm-httptarget5xxerrorrate_F94D87C0" {
      + actions_enabled                       = true
      + alarm_actions                         = (known after apply)
      + alarm_description                     = "Runbook: https://getpocket.atlassian.net/l/c/zsRAw0KV"
      + alarm_name                            = "ParserGraphQLWrapper-Prod-Alarm-HTTPTarget5xxErrorRate"
      + arn                                   = (known after apply)
      + comparison_operator                   = "GreaterThanOrEqualToThreshold"
      + datapoints_to_alarm                   = 4
      + evaluate_low_sample_count_percentiles = (known after apply)
      + evaluation_periods                    = 4
      + id                                    = (known after apply)
      + ok_actions                            = (known after apply)
      + tags                                  = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all                              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + threshold                             = 25
      + treat_missing_data                    = "missing"

      + metric_query {
          + id          = "errors"
          + return_data = false

          + metric {
              + dimensions  = (known after apply)
              + metric_name = "HTTPCode_Target_5XX_Count"
              + namespace   = "AWS/ApplicationELB"
              + period      = 300
              + stat        = "Sum"
              + unit        = "Count"
            }
        }
      + metric_query {
          + id          = "requests"
          + return_data = false

          + metric {
              + dimensions  = (known after apply)
              + metric_name = "RequestCount"
              + namespace   = "AWS/ApplicationELB"
              + period      = 3

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

            = "ParserGraphQLWrapper-Prod-ECSCodeDeployRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-custom-attachment_F8DDD355 will be created
  + resource "aws_iam_role_policy_attachment" "application_ecs_service_ecs-iam_ecs-task-custom-attachment_F8DDD355" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_046B7E2E will be created
  + resource "aws_iam_role_policy_attachment" "application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_046B7E2E" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_99A621FF will be created
  + resource "aws_iam_role_policy_attachment" "application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_99A621FF" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_1A1D5725 will be created
  + resource "aws_iam_role_policy_attachment" "application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_1A1D5725" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS"
      + role       = "ParserGraphQLWrapper-Prod-ECSCodeDeployRole"
    }

  # aws_route53_record.application_alb_certificate_certificate_record_51B45CF2 will be created
  + resource "aws_route53_record" "application_alb_certificate_certificate_record_51B45CF2" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = (known after apply)
      + records         = (known after apply)
      + ttl             = 60
      + type            = (known after apply)
      + zone_id         = (known after apply)
    }

  # aws_route53_record.application_alb_record_8EA9D3F9 will be created
  + resource "aws_route53_record" "application_alb_record_8EA9D3F9" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "parser-graphql-wrapper.readitlater.com"
      + set_identifier  = "1"
      + type            = "A"
      + zone_id         = (known after apply)

      + alias {
          + evaluate_target_health = true
          + name                   = (known after apply)
          + zone_id                = (known after apply)
        }

      + weighted_routing_policy {
          + weight = 1
        }
    }

  # aws_route53_record.application_base_dns_subhosted_zone_ns_DFB88A22 will be created
  + resource "aws_route53_record" "application_base_dns_subhosted_zone_ns_DFB88A22" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "parser-graphql-wrapper.readitlater.com"
      + records         = (known after apply)
      + ttl             = 86400
      + type            = "NS"
      + zone_id         = "Z2BHWTOWFVNW3M"
    }

  # aws_route53_zone.application_base_dns_subhosted_zone_77521D1C will be created
  + resource "aws_route53_zone" "application_base_dns_subhosted_zone_77521D1C" {
      + arn                 = (known after apply)
      + comment             = "Managed by Terraform"
      + force_destroy       = false
      + id                  = (known after apply)
      + name                = "parser-graphql-wrapper.readitlater.com"
      + name_servers        = (known after apply)
      + primary_name_server = (known after apply)
      + tags                = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all            = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + zone_id             = (known after apply)
    }

  # aws_security_group.application_application_load_balancer_alb_security_group_7B45D070 will be created
  + resource "aws_security_group" "application_application_load_balancer_alb_security_group_7B45D070" {
      + arn                    = (known after apply)
      + description            = "External security group  (Managed by Terraform)"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = "required"
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 443
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 443
            },
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 80
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = "ParserGraphQLWrapper-Prod-HTTP/S Security Group"
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Name"        = "ParserGraphQLWrapper-Prod-HTTP/S Security Group"
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all               = {
          + "Name"        = "ParserGraphQLWrapper-Prod-HTTP/S Security Group"
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + vpc_id                 = "vpc-867638e3"
    }

  # aws_security_group.application_ecs_service_ecs_security_group_231C6B1E will be created
  + resource "aws_security_group" "application_ecs_service_ecs_security_group_231C6B1E" {
      + arn                    = (known after apply)
      + description            = "Internal ECS Security Group (Managed by Terraform)"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = "required"
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = []
              + description      = "required"
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = (known after apply)
              + self             = false
              + to_port          = 4001
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = "ParserGraphQLWrapper-Prod-ECSSecurityGroup"
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all               = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + vpc_id                 = "vpc-867638e3"
    }

  # aws_security_group.redis_elasticache_security_group_24BFB83E will be created
  + resource "aws_security_group" "redis_elasticache_security_group_24BFB83E" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = (known after apply)
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/16",
                ]
              + description      = ""
              + from_port        = 6379
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 6379
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = "ParserGraphQLWrapper-Prod"
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + tags_all               = {
          + "environment" = "Prod"
          + "service"     = "ParserGraphQLWrapper"
        }
      + vpc_id                 = "vpc-867638e3"
    }

  # aws_sns_topic.pagerduty_alarm-critical-topic_F1534579 will be created
  + resource "aws_sns_topic" "pagerduty_alarm-critical-topic_F1534579" {
      + arn                         = (known after apply)
      + beginning_archive_time      = (known after apply)
      + content_based_deduplication = false
      + fifo_topic                  = false
      + id                          = (known after apply)
      + name                        = "ParserGraphQLWrapper-Prod-Infrastructure-Alarm-Critical"
      + name_prefix                 = (known after apply)
      + owner                       = (known after apply)
      + policy                      = (known after apply)
      + signature_version           = (known after apply)
      + tags_all                    = (known after apply)
      + tracing_config              = (known after apply)
    }

  # aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3 will be created
  + resource "aws_sns_topic" "pagerduty_alarm-non-critical-topic_53C1A3B3" {
      + arn                         = (known after apply)
      + beginning_archive_time      = (known after apply)
      + content_based_deduplication = false
      + fifo_topic                  = false
      + id                          = (known after apply)
      + name                        = "ParserGraphQLWrapper-Prod-Infrastructure-Alarm-Non-Critical"
      + name_prefix                 = (known after apply)
      + owner                       = (known after apply)
      + policy                      = (known after apply)
      + signature_version           = (known after apply)
      + tags_all                    = (known after apply)
      + tracing_config              = (known after apply)
    }

  # aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84 will be created
  + resource "aws_sns_topic_subscription" "pagerduty_alarm-critical-subscription_E2168B84" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 2
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = true
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "https"
      + raw_message_delivery            = false
      + topic_arn                       = (known after apply)
    }

  # aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B will be created
  + resource "aws_sns_topic_subscription" "pagerduty_alarm-non-critical-subscription_4702677B" {
      + arn                             = (known after apply)
      + confirmation_timeout_in_minutes = 2
      + confirmation_was_authenticated  = (known after apply)
      + endpoint                        = (known after apply)
      + endpoint_auto_confirms          = true
      + filter_policy_scope             = (known after apply)
      + id                              = (known after apply)
      + owner_id                        = (known after apply)
      + pending_confirmation            = (known after apply)
      + protocol                        = "https"
      + raw_message_delivery            = false
      + topic_arn                       = (known after apply)
    }

  # 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)
    }

  # pagerduty_service.pagerduty_pagerduty-critical_464EE7CD will be created
  + resource "pagerduty_service" "pagerduty_pagerduty-critical_464EE7CD" {
      + acknowledgement_timeout = "1800"
      + alert_creation          = "create_incidents"
      + alert_grouping          = (known after apply)
      + alert_grouping_timeout  = (known after apply)
      + auto_resolve_timeout    = "14400"
      + created_at              = (known after apply)
      + description             = "PagerDuty Critical"
      + escalation_policy       = "PLPWYPC"
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + last_incident_timestamp = (known after apply)
      + name                    = "ParserGraphQLWrapper-Prod-PagerDuty-Critical"
      + response_play           = (known after apply)
      + status                  = (known after apply)
      + type                    = (known after apply)

      + incident_urgency_rule {
          + type    = "constant"
          + urgency = "high"
        }
    }

  # pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938 will be created
  + resource "pagerduty_service" "pagerduty_pagerduty-non-critical_B4CB3938" {
      + acknowledgement_timeout = "1800"
      + alert_creation          = "create_incidents"
      + alert_grouping          = (known after apply)
      + alert_grouping_timeout  = (known after apply)
      + auto_resolve_timeout    = "14400"
      + created_at              = (known after apply)
      + description             = "PagerDuty Non-Critical"
      + escalation_policy       = "PLPWYPC"
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + last_incident_timestamp = (known after apply)
      + name                    = "ParserGraphQLWrapper-Prod-PagerDuty-Non-Critical"
      + response_play           = (known after apply)
      + status                  = (known after apply)
      + type                    = (known after apply)

      + incident_urgency_rule {
          + type    = "constant"
          + urgency = "low"
        }
    }

  # pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5 will be created
  + resource "pagerduty_service_integration" "pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5" {
      + email_filter_mode       = (known after apply)
      + email_incident_creation = (known after apply)
      + email_parsing_fallback  = (known after apply)
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + integration_email       = (known after apply)
      + integration_key         = (known after apply)
      + name                    = "Amazon CloudWatch"
      + service                 = (known after apply)
      + type                    = (known after apply)
      + vendor                  = "PZQ6AUS"
    }

  # pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C will be created
  + resource "pagerduty_service_integration" "pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C" {
      + email_filter_mode       = (known after apply)
      + email_incident_creation = (known after apply)
      + email_parsing_fallback  = (known after apply)
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + integration_email       = (known after apply)
      + integration_key         = (known after apply)
      + name                    = "Amazon CloudWatch"
      + service                 = (known after apply)
      + type                    = (known after apply)
      + vendor                  = "PZQ6AUS"
    }

  # pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23 will be created
  + resource "pagerduty_service_integration" "pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23" {
      + email_filter_mode       = (known after apply)
      + email_incident_creation = (known after apply)
      + email_parsing_fallback  = (known after apply)
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + integration_email       = (known after apply)
      + integration_key         = (known after apply)
      + name                    = "Sentry"
      + service                 = (known after apply)
      + type                    = (known after apply)
      + vendor                  = "PKAPG94"
    }

  # pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197 will be created
  + resource "pagerduty_service_integration" "pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197" {
      + email_filter_mode       = (known after apply)
      + email_incident_creation = (known after apply)
      + email_parsing_fallback  = (known after apply)
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + integration_email       = (known after apply)
      + integration_key         = (known after apply)
      + name                    = "Sentry"
      + service                 = (known after apply)
      + type                    = (known after apply)
      + vendor                  = "PKAPG94"
    }

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

:x: Plan Failed (account-delete-monitor-cdk)
CI link
Error: Required token could not be found

 Run the following command to generate a token for app.terraform.io:
     terraform login

Create

aws_cloudwatch_log_group.eventtracker_lambda_log-group_D52B53E0
aws_codedeploy_app.eventtracker_lambda-code-deploy_code-deploy-app_B68BD6E0
aws_codedeploy_deployment_group.eventtracker_lambda-code-deploy_code-deployment-group_C430DA66
aws_dynamodb_table.event-table_dynamodb_table_49BD839C
aws_iam_policy.EventTracker-lambda-dynamo-policy
aws_iam_policy.eventtracker_lambda_execution-policy_A74ACAF0
aws_iam_policy.eventtracker_sqs-policy_32E8FFAA
aws_iam_role.eventtracker_lambda-code-deploy_code-deploy-role_761181E3
aws_iam_role.eventtracker_lambda_execution-role_6AC27719
aws_iam_role_policy_attachment.EventTracker-execution-role-policy-attachment
aws_iam_role_policy_attachment.eventtracker_execution-role-policy-attachment_88191D7C
aws_iam_role_policy_attachment.eventtracker_lambda-code-deploy_code-deploy-policy-attachment_41A74CFD
aws_iam_role_policy_attachment.eventtracker_lambda_execution-role-policy-attachment_4A84019A
aws_lambda_alias.eventtracker_lambda_alias_63DC690A
aws_lambda_event_source_mapping.eventtracker_lambda_event_source_mapping_9B8B4F28
aws_lambda_function.eventtracker_lambda_2D56166D
aws_s3_bucket.eventtracker_lambda_code-bucket_E2F7C311
aws_s3_bucket_acl.eventtracker_lambda_code-bucket-acl_94F01E32
aws_s3_bucket_ownership_controls.eventtracker_lambda_code-bucket-ownership-controls_AC55EF91
aws_s3_bucket_public_access_block.eventtracker_lambda_code-bucket-public-access-block_5C535663
aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
aws_sns_topic_subscription.UserEventTopic-sns-subscription
aws_sns_topic_subscription.UserMerge-Topic-sns-subscription
aws_sqs_queue.eventtracker_lambda_sqs_queue_3DFE90FE
aws_sqs_queue.eventtracker_lambda_sqs_queue_redrive_sqs_queue_D13D2A55
aws_sqs_queue.sns-topic-dql
aws_sqs_queue_policy.adm-sns-dlq-policy
aws_sqs_queue_policy.adm-sns-sqs-policy

:x: Plan Failed (account-data-deleter-cdk)
CI link
Error: Required token could not be found

 Run the following command to generate a token for app.terraform.io:
     terraform login

apply)
      + id          = (known after apply)
      + name        = "AccountDataDeleter-Prod-Sqs-Event-Consumer-LambdaSQSPolicy"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = (known after apply)
      + policy_id   = (known after apply)
      + tags        = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all    = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
    }

  # aws_iam_role.batchdeletelambda_batch-delete-lambda_execution-role_28D715FA will be created
  + resource "aws_iam_role" "batchdeletelambda_batch-delete-lambda_execution-role_28D715FA" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = [
                              + "lambda.amazonaws.com",
                              + "edgelambda.amazonaws.com",
                            ]
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-BatchDeleteLambda-ExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.batchdeletelambda_batch-delete-lambda_lambda-code-deploy_code-deploy-role_9D02E0E0 will be created
  + resource "aws_iam_role" "batchdeletelambda_batch-delete-lambda_lambda-code-deploy_code-deploy-role_9D02E0E0" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "codedeploy.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-BatchDeleteLambda-CodeDeployRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)
    }

  # aws_iam_role.data-deleter-app_application_ecs_service_ecs-iam_ecs-execution-role_A0A8D414 will be created
  + resource "aws_iam_role" "data-deleter-app_application_ecs_service_ecs-iam_ecs-execution-role_A0A8D414" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-TaskExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.data-deleter-app_application_ecs_service_ecs-iam_ecs-task-role_91290640 will be created
  + resource "aws_iam_role" "data-deleter-app_application_ecs_service_ecs-iam_ecs-task-role_91290640" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ecs-tasks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-TaskRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.data-deleter-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_C71A976C will be created
  + resource "aws_iam_role" "data-deleter-app_application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_C71A976C" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "codedeploy.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-ECSCodeDeployRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role.event-consumer_sqs-event-consumer_lambda-code-deploy_code-deploy-role_09F928DA will be created
  + resource "aws_iam_role" "event-consumer_sqs-event-consumer_lambda-code-deploy_code-deploy-role_09F928DA" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "codedeploy.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-Sqs-Event-Consumer-CodeDeployRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)
    }

  # aws_iam_role.event-consumer_sqs-event-consumer_lambda_execution-role_DF2EA7D3 will be created
  + resource "aws_iam_role" "event-consumer_sqs-event-consumer_lambda_execution-role_DF2EA7D3" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = [
                              + "lambda.amazonaws.com",
                              + "edgelambda.amazonaws.com",
                            ]
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "AccountDataDeleter-Prod-Sqs-Event-Consumer-ExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags                  = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all              = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + unique_id             = (known after apply)
    }

  # aws_iam_role_policy_attachment.batchdeletelambda_BatchDeleteLambda-execution-role-policy-attachment_C22EB886 will be created
  + resource "aws_iam_role_policy_attachment" "batchdeletelambda_BatchDeleteLambda-execution-role-policy-attachment_C22EB886" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "AccountDataDeleter-Prod-BatchDeleteLambda-ExecutionRole"
    }

  # aws_iam_role_policy_attachment.batchdeletelambda_batch-delete-lambda_execution-role-policy-attachment_2D695129 will be created
  + resource "aws_iam_role_policy_attachment" "batchdeletelambda_batch-delete-lambda_execution-role-policy-attachment_2D695129" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "AccountDataDeleter-Prod-BatchDeleteLambda-ExecutionRole"
    }

  # aws_iam_role_policy_attachment.batchdeletelambda_batch-delete-lambda_lambda-code-deploy_code-deploy-policy-attachment_70043CD9 will be created
  + resource "aws_iam_role_policy_attachment" "batchdeletelambda_batch-delete-lambda_lambda-code-deploy_code-deploy-policy-attachment_70043CD9" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda"
      + role       = "AccountDataDeleter-Prod-BatchDeleteLambda-CodeDeployRole"
    }

  # aws_iam_role_policy_attachment.data-deleter-app_application_ecs_service_ecs-iam_ecs-task-custom-attachment_588622C1 will be created
  + resource "aws_iam_role_policy_attachment" "data-deleter-app_application_ecs_service_ecs-iam_ecs-task-custom-attachment_588622C1" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.data-deleter-app_application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_AAC29FFD will be created
  + resource "aws_iam_role_policy_attachment" "data-deleter-app_application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_AAC29FFD" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.data-deleter-app_application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_1BBB86C3 will be created
  + resource "aws_iam_role_policy_attachment" "data-deleter-app_application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_1BBB86C3" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
      + role       = (known after apply)
    }

  # aws_iam_role_policy_attachment.data-deleter-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_C5DC6D5A will be created
  + resource "aws_iam_role_policy_attachment" "data-deleter-app_application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_C5DC6D5A" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS"
      + role       = "AccountDataDeleter-Prod-ECSCodeDeployRole"
    }

  # aws_iam_role_policy_attachment.event-consumer_sqs-event-consumer_execution-role-policy-attachment_64A8236E will be created
  + resource "aws_iam_role_policy_attachment" "event-consumer_sqs-event-consumer_execution-role-policy-attachment_64A8236E" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "AccountDataDeleter-Prod-Sqs-Event-Consumer-ExecutionRole"
    }

  # aws_iam_role_policy_attachment.event-consumer_sqs-event-consumer_lambda-code-deploy_code-deploy-policy-attachment_DAFAA787 will be created
  + resource "aws_iam_role_policy_attachment" "event-consumer_sqs-event-consumer_lambda-code-deploy_code-deploy-policy-attachment_DAFAA787" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda"
      + role       = "AccountDataDeleter-Prod-Sqs-Event-Consumer-CodeDeployRole"
    }

  # aws_iam_role_policy_attachment.event-consumer_sqs-event-consumer_lambda_execution-role-policy-attachment_8D0214D0 will be created
  + resource "aws_iam_role_policy_attachment" "event-consumer_sqs-event-consumer_lambda_execution-role-policy-attachment_8D0214D0" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "AccountDataDeleter-Prod-Sqs-Event-Consumer-ExecutionRole"
    }

  # aws_lambda_alias.batchdeletelambda_batch-delete-lambda_alias_614E64AB will be created
  + resource "aws_lambda_alias" "batchdeletelambda_batch-delete-lambda_alias_614E64AB" {
      + arn              = (known after apply)
      + function_name    = "AccountDataDeleter-Prod-BatchDeleteLambda-Function"
      + function_version = (known after apply)
      + id               = (known after apply)
      + invoke_arn       = (known after apply)
      + name             = "DEPLOYED"
    }

  # aws_lambda_alias.event-consumer_sqs-event-consumer_lambda_alias_7FEF0048 will be created
  + resource "aws_lambda_alias" "event-consumer_sqs-event-consumer_lambda_alias_7FEF0048" {
      + arn              = (known after apply)
      + function_name    = "AccountDataDeleter-Prod-Sqs-Event-Consumer-Function"
      + function_version = (known after apply)
      + id               = (known after apply)
      + invoke_arn       = (known after apply)
      + name             = "DEPLOYED"
    }

  # aws_lambda_event_source_mapping.event-consumer_sqs-event-consumer_lambda_event_source_mapping_DFCB2350 will be created
  + resource "aws_lambda_event_source_mapping" "event-consumer_sqs-event-consumer_lambda_event_source_mapping_DFCB2350" {
      + batch_size                         = 10
      + enabled                            = true
      + event_source_arn                   = (known after apply)
      + function_arn                       = (known after apply)
      + function_name                      = (known after apply)
      + function_response_types            = [
          + "ReportBatchItemFailures",
        ]
      + id                                 = (known after apply)
      + last_modified                      = (known after apply)
      + last_processing_result             = (known after apply)
      + maximum_batching_window_in_seconds = 60
      + maximum_record_age_in_seconds      = (known after apply)
      + maximum_retry_attempts             = (known after apply)
      + parallelization_factor             = (known after apply)
      + state                              = (known after apply)
      + state_transition_reason            = (known after apply)
      + uuid                               = (known after apply)
    }

  # aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B will be created
  + resource "aws_lambda_function" "batchdeletelambda_batch-delete-lambda_9A38729B" {
      + architectures                  = (known after apply)
      + arn                            = (known after apply)
      + filename                       = "index.js.zip"
      + function_name                  = "AccountDataDeleter-Prod-BatchDeleteLambda-Function"
      + handler                        = "index.handler"
      + id                             = (known after apply)
      + invoke_arn                     = (known after apply)
      + last_modified                  = (known after apply)
      + memory_size                    = 128
      + package_type                   = "Zip"
      + publish                        = true
      + qualified_arn                  = (known after apply)
      + qualified_invoke_arn           = (known after apply)
      + reserved_concurrent_executions = 1
      + role                           = (known after apply)
      + runtime                        = "nodejs16.x"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + skip_destroy                   = false
      + source_code_hash               = "W3H4FeYY1XpXur5FoFbOhDmOD96dMyqqzRIkSf0dED4="
      + source_code_size               = (known after apply)
      + tags                           = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all                       = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + timeout                        = 120
      + version                        = (known after apply)

      + environment {
          + variables = {
              + "ENVIRONMENT" = "production"
              + "GIT_SHA"     = (sensitive value)
              + "NODE_ENV"    = "production"
              + "SENTRY_DSN"  = (sensitive value)
              + "USER_API"    = "https://user-api.readitlater.com"
            }
        }

      + vpc_config {
          + ipv6_allowed_for_dual_stack = false
          + security_group_ids          = [
              + "sg-2efb704a",
            ]
          + subnet_ids                  = [
              + "subnet-610bdb3b",
              + "subnet-b2a036fa",
              + "subnet-cc66bde0",
              + "subnet-d09eb8ec",
            ]
          + vpc_id                      = (known after apply)
        }
    }

  # aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C will be created
  + resource "aws_lambda_function" "event-consumer_sqs-event-consumer_lambda_2F35855C" {
      + architectures                  = (known after apply)
      + arn                            = (known after apply)
      + filename                       = "index.js.zip"
      + function_name                  = "AccountDataDeleter-Prod-Sqs-Event-Consumer-Function"
      + handler                        = "index.handler"
      + id                             = (known after apply)
      + invoke_arn                     = (known after apply)
      + last_modified                  = (known after apply)
      + memory_size                    = 128
      + package_type                   = "Zip"
      + publish                        = true
      + qualified_arn                  = (known after apply)
      + qualified_invoke_arn           = (known after apply)
      + reserved_concurrent_executions = -1
      + role                           = (known after apply)
      + runtime                        = "nodejs18.x"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + skip_destroy                   = false
      + source_code_hash               = "W3H4FeYY1XpXur5FoFbOhDmOD96dMyqqzRIkSf0dED4="
      + source_code_size               = (known after apply)
      + tags                           = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all                       = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + timeout                        = 120
      + version                        = (known after apply)

      + environment {
          + variables = {
              + "ACCOUNT_DATA_DELETER_API_URI" = "https://account-data-deleter-api.readitlater.com"
              + "ENVIRONMENT"                  = "production"
              + "GIT_SHA"                      = (sensitive value)
              + "NODE_ENV"                     = "production"
              + "SENTRY_DSN"                   = (sensitive value)
            }
        }

      + vpc_config {
          + ipv6_allowed_for_dual_stack = false
          + security_group_ids          = [
              + "sg-2efb704a",
            ]
          + subnet_ids                  = [
              + "subnet-610bdb3b",
              + "subnet-b2a036fa",
              + "subnet-cc66bde0",
              + "subnet-d09eb8ec",
            ]
          + vpc_id                      = (known after apply)
        }
    }

  # aws_lambda_permission.batchdeletelambda_AccountDataDeleter-Prod-batchLambda-permission_E53768B8 will be created
  + resource "aws_lambda_permission" "batchdeletelambda_AccountDataDeleter-Prod-batchLambda-permission_E53768B8" {
      + action              = "lambda:InvokeFunction"
      + function_name       = (known after apply)
      + id                  = (known after apply)
      + principal           = "events.amazonaws.com"
      + source_arn          = (known after apply)
      + statement_id        = (known after apply)
      + statement_id_prefix = (known after apply)
    }

  # aws_route53_record.data-deleter-app_application_alb_certificate_certificate_record_88681242 will be created
  + resource "aws_route53_record" "data-deleter-app_application_alb_certificate_certificate_record_88681242" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = (known after apply)
      + records         = (known after apply)
      + ttl             = 60
      + type            = (known after apply)
      + zone_id         = (known after apply)
    }

  # aws_route53_record.data-deleter-app_application_alb_record_3941D2F4 will be created
  + resource "aws_route53_record" "data-deleter-app_application_alb_record_3941D2F4" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "account-data-deleter-api.readitlater.com"
      + set_identifier  = "1"
      + type            = "A"
      + zone_id         = (known after apply)

      + alias {
          + evaluate_target_health = true
          + name                   = (known after apply)
          + zone_id                = (known after apply)
        }

      + weighted_routing_policy {
          + weight = 1
        }
    }

  # aws_route53_record.data-deleter-app_application_base_dns_subhosted_zone_ns_D71A4B22 will be created
  + resource "aws_route53_record" "data-deleter-app_application_base_dns_subhosted_zone_ns_D71A4B22" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "account-data-deleter-api.readitlater.com"
      + records         = (known after apply)
      + ttl             = 86400
      + type            = "NS"
      + zone_id         = "Z2BHWTOWFVNW3M"
    }

  # aws_route53_zone.data-deleter-app_application_base_dns_subhosted_zone_0A436834 will be created
  + resource "aws_route53_zone" "data-deleter-app_application_base_dns_subhosted_zone_0A436834" {
      + arn                 = (known after apply)
      + comment             = "Managed by Terraform"
      + force_destroy       = false
      + id                  = (known after apply)
      + name                = "account-data-deleter-api.readitlater.com"
      + name_servers        = (known after apply)
      + primary_name_server = (known after apply)
      + tags                = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all            = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + zone_id             = (known after apply)
    }

  # aws_s3_bucket.batchdeletelambda_batch-delete-lambda_code-bucket_1341E11E will be created
  + resource "aws_s3_bucket" "batchdeletelambda_batch-delete-lambda_code-bucket_1341E11E" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "pocket-accountdatadeleter-prod-batchdeletelambda"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = true
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = (known after apply)
      + request_payer               = (known after apply)
      + tags                        = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all                    = {
          + "environment" = "Prod"
          +[0m "service"     = "AccountDataDeleter"
        }
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)
    }

  # aws_s3_bucket.event-consumer_sqs-event-consumer_lambda_code-bucket_484E6323 will be created
  + resource "aws_s3_bucket" "event-consumer_sqs-event-consumer_lambda_code-bucket_484E6323" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "pocket-accountdatadeleter-prod-sqs-event-consumer"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = true
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = (known after apply)
      + request_payer               = (known after apply)
      + tags                        = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + tags_all                    = {
          + "environment" = "Prod"
          + "service"     = "AccountDataDeleter"
        }
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)
    }

  # aws_s3_bucket_acl.batchdeletelambda_batch-delete-lambda_code-bucket-acl_5284C5E4 will be created
  + resource "aws_s3_bucket_acl" "batchdeletelambda_batch-delete-lambda_code-bucket-acl_5284C5E4" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
    }

  # aws_s3_bucket_acl.event-consumer_sqs-event-consumer_lambda_code-bucket-acl_B144ED95 will be created
  + resource "aws_s3_bucket_acl" "event-consumer_sqs-event-consumer_lambda_code-bucket-acl_B144ED95" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
    }

  # aws_s3_bucket_ownership_controls.batchdeletelambda_batch-delete-lambda_code-bucket-ownership-controls_900DFC79 will be created
  + resource "aws_s3_bucket_ownership_controls" "batchdeletelambda_batch-delete-lambda_code-bucket-ownership-controls_900DFC79" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + object_ownership = "BucketOwnerPreferred"
        }
    }

  # aws_s3_bucket_ownership_controls.event-consumer_sqs-event-consumer_lambda_code-bucket-ownership-controls_10A070E1 will be created
  + resource "aws_s3_bucket_ownership_controls" "event-consumer_sqs-event-consumer_lambda_code-bucket-ownership-controls_10A070E1" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + object_ownership = "BucketOwnerPreferred"
        }
    }

  # aws_s3_bucket_public_access_block.batchdeletelambda_batch-delete-lambda_code-bucket-public-access-block_1A938E94 will be created
  + resource "aws_s3_bucket_public_access_block" "batchdeletelambda_batch-delete-lambda_code-bucket-public-access-block_1A938E94" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = false
      + restrict_public_buckets = false
    }

  # aws_s3_bucket_public_access_block.event-consumer_sqs-event-consumer_lambda_code-bucket-public-access-block_AF8F837A will be created
  + resource "aws_s3_bucket_public_access_block" "event-consumer_sqs-event-consumer_lambda_code-bucket-public-access-block_AF8F837A" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = false
      + restrict_public_buckets = false
    }

  # aws_security_group.data-deleter-app_application_application_load_balancer_alb_security_group_D3CF9597 will be created
  + resource "aws_security_group" "data-deleter-app_application_application_load_balancer_alb_security_group_D3CF9597" {
      + arn                    = (known after apply)
      + description            = "External security group  (Managed by Terraform)"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = "required"
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 443
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 443
            },
          + {
              + cidr_blocks      = [
                  + "<IP_ADDRESS>/0",
                ]
              + description      = ""
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 80
            },
        ]
      + name                   = (known after apply)