# aws_sqs_queue_policy.prospect-events_prospect-events-sqs-policy_5D878A3E will be created
  # (moved from aws_sqs_queue_policy.pocketeventbridge_prospectevents_prospecteventssqspolicy_B5651E17)
  + resource "aws_sqs_queue_policy" "prospect-events_prospect-events-sqs-policy_5D878A3E" {
      + id        = (known after apply)
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sqs:SendMessage"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "events.amazonaws.com"
                        }
                      + Resource  = "arn:aws:sqs:us-east-1:410318598490:ProspectAPI-Dev-Sqs-Translation-Queue"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + queue_url = "https://sqs.us-east-1.amazonaws.com/410318598490/ProspectAPI-Dev-Sqs-Translation-Queue"
    }

  # null_resource.pocketeventbridge_collectionevents_nullresource_DC135E6D has moved to null_resource.collection-events_null-resource_9F908E27
    resource "null_resource" "collection-events_null-resource_9F908E27" {
        id = "832091505403206886"
    }

  # null_resource.pocketeventbridge_listapievents_nullresource_0986E948 has moved to null_resource.list-api-events_null-resource_D711C801
    resource "null_resource" "list-api-events_null-resource_D711C801" {
        id = "4790634215299972220"
    }

  # null_resource.pocketeventbridge_premiumpurchase_nullresource_6D67F378 has moved to null_resource.premium-purchase_null-resource_E2C3B0AC
    resource "null_resource" "premium-purchase_null-resource_E2C3B0AC" {
        id = "2431405901146229294"
    }

  # null_resource.pocketeventbridge_prospectevents_nullresource_92CE41FC has moved to null_resource.prospect-events_null-resource_BF542108
    resource "null_resource" "prospect-events_null-resource_BF542108" {
        id = "73097855203687419"
    }

  # null_resource.pocketeventbridge_shareablelistevents_nullresource_E91C89D8 has moved to null_resource.shareable-list-events_null-resource_78AB9CC2
    resource "null_resource" "shareable-list-events_null-resource_78AB9CC2" {
        id = "7514281831826198604"
    }

  # null_resource.pocketeventbridge_shareablelistitemevents_nullresource_B57BD2A5 has moved to null_resource.shareable-list-item-events_null-resource_46056FE2
    resource "null_resource" "shareable-list-item-events_null-resource_46056FE2" {
        id = "7821674224914414466"
    }

  # null_resource.user-api-events will be created
  + resource "null_resource" "user-api-events" {
      + id = (known after apply)
    }

  # null_resource.pocketeventbridge_userapievents_nullresource_7F96C768 has moved to null_resource.user-api-events_null-resource_C0C836FA
    resource "null_resource" "user-api-events_null-resource_C0C836FA" {
        id = "2732232843318932070"
    }

  # null_resource.user-registration will be created
  + resource "null_resource" "user-registration" {
      + id = (known after apply)
    }

  # null_resource.pocketeventbridge_userregistration_nullresource_F1C77D27 has moved to null_resource.user-registration_null-resource_B04CACC3
    resource "null_resource" "user-registration_null-resource_B04CACC3" {
        id = "2164411739781809868"
    }

  # pagerduty_service.pagerduty_pagerduty-critical_464EE7CD will be created
  # (moved from pagerduty_service.pocketeventbridge_pagerduty_pagerdutycritical_22817B42)
  + 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       = "PXOQVEP"
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + last_incident_timestamp = (known after apply)
      + name                    = "PocketEventBridge-Dev-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
  # (moved from pagerduty_service.pocketeventbridge_pagerduty_pagerdutynoncritical_333AFE25)
  + 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       = "PXOQVEP"
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + last_incident_timestamp = (known after apply)
      + name                    = "PocketEventBridge-Dev-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: 11 to add, 2 to change, 2 to destroy.

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

Terraform will perform the following actions:

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

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

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/ShareableListsApi-Dev:138" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/ShareableListsApi-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ environment            = [
                        # (4 unchanged elements hidden)
                        {
                            name  = "REDIS_READER_ENDPOINT"
                            value = "shareablelistsapi-dev-ro.n7e2yl.ng.0001.use1.cache.amazonaws.com"
                        },
                      ~ {
                            name  = "RELEASE_SHA"
                          ~ value = "2f004dbde84e04c7a22fedc6c4b1a40a3329c140" -> "4d4db5a121fea4ddc5ff640ffad7034fc3e2b1ea"
                        },
                    ]
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ShareableListsApi-Dev" -> (known after apply)
      ~ revision                 = 138 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "ShareableListsApi"
        }
        # (9 unchanged attributes hidden)
    }

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

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

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

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=397579a526e00f5be9efad37fcc411e996ea33f5]
Releasing state lock. This may take a few moments...

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

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

Terraform will perform the following actions:

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

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

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

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

Terraform will perform the following actions:

  # aws_cloudwatch_log_group.application_ecs_service_ecs-aws-otel-collector_9F54C4B2 will be destroyed
  # (because aws_cloudwatch_log_group.application_ecs_service_ecs-aws-otel-collector_9F54C4B2 is not in configuration)
  - resource "aws_cloudwatch_log_group" "application_ecs_service_ecs-aws-otel-collector_9F54C4B2" {
      - arn               = "arn:aws:logs:us-east-1:410318598490:log-group:/ecs/UserAPI-Dev/aws-otel-collector20221214002815155700000001" -> null
      - id                = "/ecs/UserAPI-Dev/aws-otel-collector20221214002815155700000001" -> null
      - log_group_class   = "STANDARD" -> null
      - name              = "/ecs/UserAPI-Dev/aws-otel-collector20221214002815155700000001" -> null
      - name_prefix       = "/ecs/UserAPI-Dev/aws-otel-collector" -> null
      - retention_in_days = 30 -> null
      - skip_destroy      = false -> null
      - tags              = {
          - "environment" = "Dev"
          - "service"     = "UserAPI"
        } -> null
      - tags_all          = {
          - "environment" = "Dev"
          - "service"     = "UserAPI"
        } -> null
    }

  # 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/UserAPI-Dev/ecs/aws-otel-collector"
      + name_prefix       = (known after apply)
      + retention_in_days = 90
      + skip_destroy      = true
      + tags              = {
          + "environment" = "Dev"
          + "service"     = "UserAPI"
        }
      + tags_all          = {
          + "environment" = "Dev"
          + "service"     = "UserAPI"
        }
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserAPI-Dev:63" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/UserAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (10 unchanged attributes hidden)
                },
              ~ {
                  ~ logConfiguration       = {
                      ~ options       = {
                          ~ awslogs-group             = "/ecs/UserAPI-Dev/aws-otel-collector20221214002815155700000001" -> "/Backend/UserAPI-Dev/ecs/aws-otel-collector"
                          + awslogs-multiline-pattern = "^\\S.+"
                            # (2 unchanged attributes hidden)
                        }
                        # (2 unchanged attributes hidden)
                    }
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "UserAPI-Dev" -> (known after apply)
      ~ revision                 = 63 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "UserAPI"
        }
        # (9 unchanged attributes hidden)
    }

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

Plan: 3 to add, 0 to change, 2 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=UserAPI-Dev]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_cloudwatch_log_group.application_ecs_service_ecs-aws-otel-collector_9F54C4B2: Destroying... [id=/ecs/UserAPI-Dev/aws-otel-collector20221214002815155700000001]
aws_cloudwatch_log_group.aws-otel-collector-log-group: Creating...
aws_cloudwatch_log_group.application_ecs_service_ecs-aws-otel-collector_9F54C4B2: Destruction complete after 0s
aws_cloudwatch_log_group.aws-otel-collector-log-group: Creation complete after 0s [id=/Backend/UserAPI-Dev/ecs/aws-otel-collector]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=UserAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=6b6d080ea85e19938eea245cb0c61ca0fb1736ae]
Releasing state lock. This may take a few moments...

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

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

Terraform will perform the following actions:

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-01-23T02:35:09Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:410318598490:ctafu7cig4/" -> (known after apply)
      ~ id            = "v4l1k5" -> (known after apply)
      ~ invoke_url    = "https://ctafu7cig4.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1705977265953" -> "1706055399794"
            # (1 unchanged element hidden)
        }
        # (1 unchanged attribute hidden)
    }

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

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

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

        # (4 unchanged blocks hidden)
    }

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

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

        # (4 unchanged blocks hidden)
    }

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

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

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

Terraform will perform the following actions:

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

      + statement {
          + actions   = [
              + "dynamodb:BatchGet*",
              + "dynamodb:BatchWrite*",
              + "dynamodb:Delete*",
              + "dynamodb:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes",
              + "arn:aws:dynamodb:us-east-1:410318598490:table/ANNOT-Dev-highlight-notes/*",
            ]
        }
      + statement {
          + actions   = [
              + "sqs:DeleteMessage",
              + "sqs:ReceiveMessage",
              + "sqs:SendMessage",
              + "sqs:SendMessageBatch",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:sqs:us-east-1:410318598490:AnnotationsAPI-Dev-Batch-Delete-Consumer-Queue",
            ]
        }
    }

  # aws_cloudwatch_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/AnnotationsAPI-Dev/ecs/aws-otel-collector"
      + name_prefix       = (known after apply)
      + retention_in_days = 90
      + skip_destroy      = true
      + tags              = {
          + "environment" = "Dev"
          + "service"     = "AnnotationsAPI"
        }
      + tags_all          = {
          + "environment" = "Dev"
          + "service"     = "AnnotationsAPI"
        }
    }

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

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

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

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

        # (4 unchanged blocks hidden)
    }

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:410318598490:task-definition/AnnotationsAPI-Dev:73" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:410318598490:task-definition/AnnotationsAPI-Dev" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ environment            = [
                        # (8 unchanged elements hidden)
                        {
                            name  = "NODE_ENV"
                            value = "development"
                        },
                      + {
                          + name  = "OTLP_COLLECTOR_HOST"
                          + value = "localhost"
                        },
                        {
                            name  = "REDIS_PRIMARY_ENDPOINT"
                            value = "annotationsapi-dev.n7e2yl.ng.0001.use1.cache.amazonaws.com"
                        },
                        # (2 unchanged elements hidden)
                    ]
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
              + {
                  + command                = [
                      + "--config=/etc/ecs/ecs-xray.yaml",
                    ]
                  + cpu                    = 0
                  + environment            = []
                  + essential              = true
                  + image                  = "amazon/aws-otel-collector"
                  + logConfiguration       = {
                      + logDriver     = "awslogs"
                      + options       = {
                          + awslogs-group             = "/Backend/AnnotationsAPI-Dev/ecs/aws-otel-collector"
                          + awslogs-multiline-pattern = "^\\S.+"
                          + awslogs-region            = "us-east-1"
                          + awslogs-stream-prefix     = "ecs"
                        }
                      + secretOptions = []
                    }
                  + mountPoints            = []
                  + name                   = "aws-otel-collector"
                  + portMappings           = [
                      + {
                          + containerPort = 4138
                          + hostPort      = 4138
                        },
                      + {
                          + containerPort = 4137
                          + hostPort      = 4137
                        },
                    ]
                  + readonlyRootFilesystem = false
                  + repositoryCredentials  = {
                      + credentialsParameter = "arn:aws:secretsmanager:us-east-1:410318598490:secret:Shared/DockerHub"
                    }
                  + volumesFrom            = []
                },
            ] # forces replacement
        )
      ~ id                       = "AnnotationsAPI-Dev" -> (known after apply)
      ~ revision                 = 73 -> (known after apply)
        tags                     = {
            "environment" = "Dev"
            "service"     = "AnnotationsAPI"
        }
        # (9 unchanged attributes hidden)
    }

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

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

Plan: 3 to add, 4 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=AnnotationsAPI-Dev]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifying... [id=annot-dev-uptime-0]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifying... [id=annot-dev-query-0]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
aws_cloudwatch_log_group.aws-otel-collector-log-group: Creating...
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifying... [id=ANNOT-Dev-highlight-notes]
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_uptime_0_3A56DFC7: Modifications complete after 0s [id=annot-dev-uptime-0]
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifications complete after 0s [id=ANNOT-Dev-highlight-notes]
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Read complete after 0s [id=126432256]
aws_cloudwatch_log_group.aws-otel-collector-log-group: Creation complete after 0s [id=/Backend/AnnotationsAPI-Dev/ecs/aws-otel-collector]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creating...
aws_cloudwatch_metric_alarm.synthetics_synthetics_synthetic_check_alarm_query_0_52F9FF21: Modifications complete after 0s [id=annot-dev-query-0]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Creation complete after 0s [id=AnnotationsAPI-Dev]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=ceafb26ea7e630d00f7aa8d8ff1376619ce29475]

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

:white_check_mark: Apply Succeeded (shared-snowplow-consumer-cdk)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Details (Click me)
Acquiring state lock.  Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # 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              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "app"
                                  + ContainerPort = 4015
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/SharedSnowplowConsumer-Prod:78"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creating...
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creation complete after 0s [id=4541ae7aceb375f05b0b3f9ae875a7f56c5e34c8]

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

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

Terraform will perform the following actions:

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

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

        # (4 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
aws_lambda_function.eventtracker_lambda_2D56166D: Modifying... [id=AccountDeleteMonitor-Prod-EventTracker-Function]
aws_lambda_function.eventtracker_lambda_2D56166D: Modifications complete after 7s [id=AccountDeleteMonitor-Prod-EventTracker-Function]
Releasing state lock. This may take a few moments...

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

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

Terraform will perform the following actions:

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

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

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

:white_check_mark: Apply Succeeded (list-api-cdk)
CI link
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Details (Click me)
Acquiring state lock.  Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

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

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

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

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

Terraform will perform the following actions:

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

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

        # (4 unchanged blocks hidden)
    }

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

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

        # (4 unchanged blocks hidden)
    }

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

Plan: 1 to add, 2 to change, 0 to destroy.
local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09: Creating...
local_file.data-deleter-app_application_ecs_service_appspec_5FC42C09: Creation complete after 0s [id=e92d92999cc4a109b86a8569d34979c8c5d93a52]
aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B: Modifying... [id=AccountDataDeleter-Prod-BatchDeleteLambda-Function]
aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C: Modifying... [id=AccountDataDeleter-Prod-Sqs-Event-Consumer-Function]
aws_lambda_function.event-consumer_sqs-event-consumer_lambda_2F35855C: Modifications complete after 7s [id=AccountDataDeleter-Prod-Sqs-Event-Consumer-Function]
aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B: Modifications complete after 7s [id=AccountDataDeleter-Prod-BatchDeleteLambda-Function]

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

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

Terraform will perform the following actions:

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

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

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

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

Terraform will perform the following actions:

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/ShareableListsApi-Prod:289" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ShareableListsApi-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ environment            = [
                        # (4 unchanged elements hidden)
                        {
                            name  = "REDIS_READER_ENDPOINT"
                            value = "shareablelistsapi-prod-ro.zcx42u.ng.0001.use1.cache.amazonaws.com"
                        },
                      ~ {
                            name  = "RELEASE_SHA"
                          ~ value = "e204da3842c2afd230d577e074eee00f206754f1" -> "2f57265c0c5cee1fb38219368cd199dc5d75aab2"
                        },
                    ]
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ShareableListsApi-Prod" -> (known after apply)
      ~ revision                 = 289 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ShareableListsApi"
        }
        # (9 unchanged attributes hidden)
    }

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

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

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

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

Terraform will perform the following actions:

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

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

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

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=b104be7a62bf15ade768782f08aee0e63fb29e98]
Releasing state lock. This may take a few moments...

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

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

Terraform will perform the following actions:

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-01-24T00:51:34Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:996905175585:b1aoz7w8yj/" -> (known after apply)
      ~ id            = "m6yfqo" -> (known after apply)
      ~ invoke_url    = "https://b1aoz7w8yj.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1706057447310" -> "1706107547914"
            # (1 unchanged element hidden)
        }
        # (1 unchanged attribute hidden)
    }

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

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

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

        # (4 unchanged blocks hidden)
    }

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

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

        # (4 unchanged blocks hidden)
    }

Plan: 1 to add, 3 to change, 1 to destroy.
aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609: Modifying... [id=FxAWebhookProxy-Prod-Sqs-FxA-Events-Function]
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171: Modifying... [id=FxAWebhookProxy-Prod-ApiGateway-FxA-Events-Function]
aws_lambda_function.proxy-lambda_fxa-events-sqs-lambda_39345609: Modifications complete after 6s [id=FxAWebhookProxy-Prod-Sqs-FxA-Events-Function]
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171: Modifications complete after 6s [id=FxAWebhookProxy-Prod-ApiGateway-FxA-Events-Function]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creating...
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creation complete after 0s [id=neys87]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifying... [id=ags-b1aoz7w8yj-prod]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifications complete after 0s [id=ags-b1aoz7w8yj-prod]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 (deposed object 66365f11): Destroying... [id=m6yfqo]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Destruction complete after 0s

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

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

Terraform will perform the following actions:

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

      + statement {
          + actions   = [
              + "dynamodb:BatchGet*",
              + "dynamodb:BatchWrite*",
              + "dynamodb:Delete*",
              + "dynamodb:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes",
              + "arn:aws:dynamodb:us-east-1:996905175585:table/ANNOT-Prod-highlight-notes/*",
            ]
        }
      + statement {
          + actions   = [
              + "sqs:DeleteMessage",
              + "sqs:ReceiveMessage",
              + "sqs:SendMessage",
              + "sqs:SendMessageBatch",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:sqs:us-east-1:996905175585:AnnotationsAPI-Prod-Batch-Delete-Consumer-Queue",
            ]
        }
    }

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

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

        # (4 unchanged blocks hidden)
    }

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

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

Plan: 1 to add, 2 to change, 0 to destroy.
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifying... [id=ANNOT-Prod-highlight-notes]
aws_dynamodb_table.dynamodb_highlight-notes_dynamodb_table_8BD520BF: Modifications complete after 0s [id=ANNOT-Prod-highlight-notes]
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Read complete after 0s [id=1845415243]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=f55debd7cabebf55c801efdc47f100dba8b9a0c0]
Releasing state lock. This may take a few moments...

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

:white_check_mark: Apply Succeeded (pocket-event-bridge-cdk)
CI link
Apply complete! Resources: 8 added, 3 changed, 6 destroyed.

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

rod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_collectionevents_snstopicdql_6B11F7F7 has moved to aws_sqs_queue.collection-events_sns-topic-dql_48DE5FA3
    resource "aws_sqs_queue" "collection-events_sns-topic-dql_48DE5FA3" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-SNS-CollectionEvents-Event-Rule-DLQ"
        name                              = "PocketEventBridge-Prod-SNS-CollectionEvents-Event-Rule-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_listapievents_snstopicdql_0098EEA6 has moved to aws_sqs_queue.list-api-events_sns-topic-dql_ED0C2F54
    resource "aws_sqs_queue" "list-api-events_sns-topic-dql_ED0C2F54" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-ListApiEvents-Topic-Rule-DLQ"
        name                              = "PocketEventBridge-Prod-ListApiEvents-Topic-Rule-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_premiumpurchase_snstopicdlq_1949C943 has moved to aws_sqs_queue.premium-purchase_sns-topic-dlq_2D01673E
    resource "aws_sqs_queue" "premium-purchase_sns-topic-dlq_2D01673E" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-PremiumPurchase-SNS-Topic-Event-Rule-DLQ"
        name                              = "PocketEventBridge-Prod-PremiumPurchase-SNS-Topic-Event-Rule-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_shareablelistevents_snstopicdql_49BECACA has moved to aws_sqs_queue.shareable-list-events_sns-topic-dql_91DFF5B3
    resource "aws_sqs_queue" "shareable-list-events_sns-topic-dql_91DFF5B3" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-SNS-ShareableListEvents-Topic-DLQ"
        name                              = "PocketEventBridge-Prod-SNS-ShareableListEvents-Topic-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_shareablelistitemevents_snstopicdql_D0F47B59 has moved to aws_sqs_queue.shareable-list-item-events_sns-topic-dql_44435A2F
    resource "aws_sqs_queue" "shareable-list-item-events_sns-topic-dql_44435A2F" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-SNS-ShareableListItemEvents-Topic-DLQ"
        name                              = "PocketEventBridge-Prod-SNS-ShareableListItemEvents-Topic-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_userapievents_snstopicdql_A0F6EC9F has moved to aws_sqs_queue.user-api-events_sns-topic-dql_D6161F53
    resource "aws_sqs_queue" "user-api-events_sns-topic-dql_D6161F53" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-UserEvents-Topic-Rule-DLQ"
        name                              = "PocketEventBridge-Prod-UserEvents-Topic-Rule-DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue.pocketeventbridge_userregistration_snstopicdql_5EDA4814 has moved to aws_sqs_queue.user-registration_sns-topic-dql_811A5411
    resource "aws_sqs_queue" "user-registration_sns-topic-dql_811A5411" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/PocketEventBridge-Prod-SNS-UserRegistration-Topic--DLQ"
        name                              = "PocketEventBridge-Prod-SNS-UserRegistration-Topic--DLQ"
        tags                              = {
            "environment" = "Prod"
            "service"     = "PocketEventBridge"
        }
        # (12 unchanged attributes hidden)
    }

  # aws_sqs_queue_policy.pocketeventbridge_prospectevents_prospecteventssqspolicy_B5651E17 has moved to aws_sqs_queue_policy.prospect-events_prospect-events-sqs-policy_5D878A3E
    resource "aws_sqs_queue_policy" "prospect-events_prospect-events-sqs-policy_5D878A3E" {
        id        = "https://sqs.us-east-1.amazonaws.com/996905175585/ProspectAPI-Prod-Sqs-Translation-Queue"
        # (2 unchanged attributes hidden)
    }

  # null_resource.pocketeventbridge_admevents_nullresource_582607DC has moved to null_resource.adm-events_null-resource_C7D19F6F
    resource "null_resource" "adm-events_null-resource_C7D19F6F" {
        id = "5907751578904588335"
    }

  # null_resource.pocketeventbridge_collectionevents_nullresource_DC135E6D has moved to null_resource.collection-events_null-resource_9F908E27
    resource "null_resource" "collection-events_null-resource_9F908E27" {
        id = "7083867980005228814"
    }

  # null_resource.pocketeventbridge_listapievents_nullresource_0986E948 has moved to null_resource.list-api-events_null-resource_D711C801
    resource "null_resource" "list-api-events_null-resource_D711C801" {
        id = "1177664838478028438"
    }

  # null_resource.pocketeventbridge_premiumpurchase_nullresource_6D67F378 has moved to null_resource.premium-purchase_null-resource_E2C3B0AC
    resource "null_resource" "premium-purchase_null-resource_E2C3B0AC" {
        id = "8590974618707730681"
    }

  # null_resource.pocketeventbridge_prospectevents_nullresource_92CE41FC has moved to null_resource.prospect-events_null-resource_BF542108
    resource "null_resource" "prospect-events_null-resource_BF542108" {
        id = "1286103112814733777"
    }

  # null_resource.pocketeventbridge_shareablelistevents_nullresource_E91C89D8 has moved to null_resource.shareable-list-events_null-resource_78AB9CC2
    resource "null_resource" "shareable-list-events_null-resource_78AB9CC2" {
        id = "7244420153938391428"
    }

  # null_resource.pocketeventbridge_shareablelistitemevents_nullresource_B57BD2A5 has moved to null_resource.shareable-list-item-events_null-resource_46056FE2
    resource "null_resource" "shareable-list-item-events_null-resource_46056FE2" {
        id = "7377342030826013425"
    }

  # null_resource.user-api-events will be created
  + resource "null_resource" "user-api-events" {
      + id = (known after apply)
    }

  # null_resource.pocketeventbridge_userapievents_nullresource_7F96C768 has moved to null_resource.user-api-events_null-resource_C0C836FA
    resource "null_resource" "user-api-events_null-resource_C0C836FA" {
        id = "4119566737246291003"
    }

  # null_resource.user-registration will be created
  + resource "null_resource" "user-registration" {
      + id = (known after apply)
    }

  # null_resource.pocketeventbridge_userregistration_nullresource_F1C77D27 has moved to null_resource.user-registration_null-resource_B04CACC3
    resource "null_resource" "user-registration_null-resource_B04CACC3" {
        id = "1347031598725150988"
    }

  # pagerduty_service.pagerduty_pagerduty-critical_464EE7CD will be updated in-place
  # (moved from pagerduty_service.pocketeventbridge_pagerduty_pagerdutycritical_22817B42)
  ~ resource "pagerduty_service" "pagerduty_pagerduty-critical_464EE7CD" {
      ~ acknowledgement_timeout = "600" -> "1800"
        id                      = "PDZUG2E"
        name                    = "PocketEventBridge-Prod-PagerDuty-Critical"
        # (9 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938 will be updated in-place
  # (moved from pagerduty_service.pocketeventbridge_pagerduty_pagerdutynoncritical_333AFE25)
  ~ resource "pagerduty_service" "pagerduty_pagerduty-non-critical_B4CB3938" {
      ~ acknowledgement_timeout = "600" -> "1800"
        id                      = "PH8FGF4"
        name                    = "PocketEventBridge-Prod-PagerDuty-Non-Critical"
        # (10 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # 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                 = "PDZUG2E"
      + 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                 = "PH8FGF4"
      + 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                 = "PDZUG2E"
      + 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                 = "PH8FGF4"
      + type                    = (known after apply)
      + vendor                  = "PKAPG94"
    }

  # pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281critical_A02019A8 will be destroyed
  # (because pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281critical_A02019A8 is not in configuration)
  - resource "pagerduty_service_integration" "pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281critical_A02019A8" {
      - html_url        = "https://mozilla.pagerduty.com/services/PDZUG2E/integrations/PTQTW8M" -> null
      - id              = "PTQTW8M" -> null
      - integration_key = "7427f9a5d3854a02c0b8c30b7030a2d3" -> null
      - name            = "Amazon CloudWatch" -> null
      - service         = "PDZUG2E" -> null
      - type            = "event_transformer_api_inbound_integration" -> null
      - vendor          = "PZQ6AUS" -> null
    }

  # pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281noncritical_CDE4BAD7 will be destroyed
  # (because pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281noncritical_CDE4BAD7 is not in configuration)
  - resource "pagerduty_service_integration" "pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281noncritical_CDE4BAD7" {
      - html_url        = "https://mozilla.pagerduty.com/services/PH8FGF4/integrations/P94HUH9" -> null
      - id              = "P94HUH9" -> null
      - integration_key = "0172408fce6c490ec0a6a42ce381b946" -> null
      - name            = "Amazon CloudWatch" -> null
      - service         = "PH8FGF4" -> null
      - type            = "event_transformer_api_inbound_integration" -> null
      - vendor          = "PZQ6AUS" -> null
    }

  # pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78critical_3C026715 will be destroyed
  # (because pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78critical_3C026715 is not in configuration)
  - resource "pagerduty_service_integration" "pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78critical_3C026715" {
      - html_url        = "https://mozilla.pagerduty.com/services/PDZUG2E/integrations/PPE5VWZ" -> null
      - id              = "PPE5VWZ" -> null
      - integration_key = "e966b75898e24b01d01e42104f6221aa" -> null
      - name            = "Sentry" -> null
      - service         = "PDZUG2E" -> null
      - type            = "app_event_transform_inbound_integration" -> null
      - vendor          = "PKAPG94" -> null
    }

  # pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78noncritical_1E770FF0 will be destroyed
  # (because pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78noncritical_1E770FF0 is not in configuration)
  - resource "pagerduty_service_integration" "pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78noncritical_1E770FF0" {
      - html_url        = "https://mozilla.pagerduty.com/services/PH8FGF4/integrations/P5VWU4J" -> null
      - id              = "P5VWU4J" -> null
      - integration_key = "0773820ae3694f09d069d4f5cbf06ec0" -> null
      - name            = "Sentry" -> null
      - service         = "PH8FGF4" -> null
      - type            = "app_event_transform_inbound_integration" -> null
      - vendor          = "PKAPG94" -> null
    }

Plan: 8 to add, 3 to change, 6 to destroy.
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78critical_3C026715: Destroying... [id=PPE5VWZ]
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78noncritical_1E770FF0: Destroying... [id=P5VWU4J]
null_resource.user-registration: Creating...
null_resource.user-api-events: Creating...
null_resource.user-registration: Creation complete after 0s [id=5327083105882550525]
null_resource.user-api-events: Creation complete after 0s [id=8253668488401468656]
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84: Destroying... [id=arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-Infrastructure-Alarm-Critical:43fcae3a-4102-4d05-9762-2a77e739c417]
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B: Destroying... [id=arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-Infrastructure-Alarm-Non-Critical:79ed7c1b-2cb9-4cf2-b1d9-18f178abe858]
aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C: Modifying... [id=PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm]
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84: Destruction complete after 0s
aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C: Modifications complete after 0s [id=PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm]
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B: Destruction complete after 0s
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281noncritical_CDE4BAD7: Destroying... [id=P94HUH9]
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281critical_A02019A8: Destroying... [id=PTQTW8M]
pagerduty_service.pagerduty_pagerduty-critical_464EE7CD: Modifying... [id=PDZUG2E]
pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938: Modifying... [id=PH8FGF4]
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78noncritical_1E770FF0: Destruction complete after 1s
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutysentry83E4BA78critical_3C026715: Destruction complete after 1s
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281critical_A02019A8: Destruction complete after 1s
pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938: Modifications complete after 1s [id=PH8FGF4]
pagerduty_service.pagerduty_pagerduty-critical_464EE7CD: Modifications complete after 1s [id=PDZUG2E]
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197: Creating...
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5: Creating...
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C: Creating...
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23: Creating...
pagerduty_service_integration.pocketeventbridge_pagerduty_pocketeventbridgepagerdutycloudwatch18574281noncritical_CDE4BAD7: Destruction complete after 1s
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5: Creation complete after 0s [id=PUTEYG6]
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84: Creating...
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197: Creation complete after 0s [id=PQHTY3G]
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C: Creation complete after 0s [id=PN85XRT]
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B: Creating...
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23: Creation complete after 0s [id=P2MWVMD]
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84: Creation complete after 1s [id=arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-Infrastructure-Alarm-Critical:1e28704a-6e6f-4a9a-9e11-457f3af5f97f]
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B: Creation complete after 1s [id=arn:aws:sns:us-east-1:996905175585:PocketEventBridge-Prod-Infrastructure-Alarm-Non-Critical:c6031a7a-308a-4840-a945-1551f5fe6974]

Apply complete! Resources: 8 added, 3 changed, 6 destroyed.

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

Terraform will perform the following actions:

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

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

        # (4 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8: Modifying... [id=TransactionalEmails-Prod-Sqs-Event-Consumer-Function]
aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8: Modifications complete after 7s [id=TransactionalEmails-Prod-Sqs-Event-Consumer-Function]
Releasing state lock. This may take a few moments...

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


fix(atomics): clarify how we select portable-atomic's atomic implementations

Description

Tries to clarify how and why we select portable-atomic's atomic implementations via its Cargo features.

[x] I have followed the Coding Conventions.
[x] I have performed a self-review of my own code.
[x] I have made corresponding changes to the documentation.

Lgtm!


Latest IJ plugin fails to download the quiltflower decompiler

Env
IntelliJ IDEA 2022.3 RC (Ultimate Edition)
Build #IU-223.7571.123, built on November 23, 2022
macOS 12.5
net.earthcomputer.quiltflowerintellij (1.0.4)
Kotlin: 223-1.7.20-release-201-IJ7571.123

Getting the following error
java.lang.Throwable: Failed to download quiltflower 1.8.1 from https://maven.quiltmc.org/repository/snapshot/org/quiltmc/quiltflower/1.8.1-SNAPSHOT/quiltflower-1.8.1.jar: 404
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202)
	at net.earthcomputer.quiltflowerintellij.QuiltflowerState$downloadQuiltflower$1$future$1$1.invoke(QuiltflowerState.kt:162)
	at net.earthcomputer.quiltflowerintellij.QuiltflowerState$downloadQuiltflower$1$future$1$1.invoke(QuiltflowerState.kt:122
)

The IntelliJ plugin is at https://github.com/Earthcomputer/quiltflower-intellij-plugin/, not in this repository

Have you tried restarting the IDE?

@Earthcomputer disabled autoupdate and seems working fine after that. Thanks for the help. Will close this issue now.


Add syncLink script

This is a small script that extracts links from about.md and introduction.md and automatically populates links.json, which saves a bit of manual work and makes it easier to keep links synchronized.

Would be nice to have this on main to streamline creating concepts a bit.