feat(v3proxy): saved items with offset pagination (GET)

Add GET query for saved items with offset pagination.
I didn't remove the original savedItems method but it technically obviates it. Following the existing repository patterns.
I made a follow-up ticket to add input validation to user-provided query parameters.
POCKET-9615

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

Create

local_file.application_ecs_service_appspec_94386B9C

Change Result (Click me)

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

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

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

Create

local_file.appspec

Change Result (Click me)

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

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

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

Create

local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9

Replace

aws_ecs_task_definition.shared-snowplow-consumer-app_application_ecs_service_ecs-task_6958091B

Change Result (Click me)

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

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

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

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

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

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

Update

aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8

Change Result (Click me)

  # aws_lambda_function.events_sqs-event-consumer_lambda_3BE960B8 will be updated in-place
  ~ resource "aws_lambda_function" "events_sqs-event-consumer_lambda_3BE960B8" {
        id                             = "TransactionalEmails-Prod-Sqs-Event-Consumer-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:TransactionalEmails-Prod-Sqs-Event-Consumer-Function:359" -> (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:359/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "TransactionalEmails"
        }
      ~ version                        = "359" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (4 unchanged blocks hidden)
    }

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

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

Update

aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

        # (3 unchanged blocks hidden)
    }

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

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

Plan Result (pocket-event-bridge-cdk)
CI link
Plan: 0 to add, 1 to change, 0 to destroy.

Update

aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C

Change Result (Click me)

  # aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C" {
      ~ dimensions                = {
          ~ "QueueName" = "PocketEventBridge-Prod-SNS-ShareableListItemEvents-Topic-DLQ" -> "PocketEventBridge-Prod-SNS-ShareableListEvents-Topic-DLQ"
        }
        id                        = "PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm"
        tags                      = {}
        # (17 unchanged attributes hidden)
    }

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

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

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

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

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

  # aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4 must be replaced
-/+ resource "aws_ecs_task_definition" "application_ecs_service_ecs-task_461CC9D4" {
      ~ arn                      = "arn:aws:ecs:us-east-1:996905175585:task-definition/FeatureFlags-Prod:342" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/FeatureFlags-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/featureflags-prod-app:17cfea9d123639879bbc3ef610c632f0e0fbe85b" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/featureflags-prod-app:60bb565b8f7b7f5b72ac5e0c5019981c8ded0f61"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
                {
                    command                = [
                        "--region",
                        "us-east-1",
                        "--local-mode",
                    ]
                    cpu                    = 0
                    environment            = []
                    essential              = true
                    image                  = "amazon/aws-xray-daemon"
                    logConfiguration       = {
                        logDriver     = "awslogs"
                        options       = {
                            awslogs-group         = "/ecs/FeatureFlags-Prod/xray-daemon20231129182155361100000003"
                            awslogs-region        = "us-east-1"
                            awslogs-stream-prefix = "ecs"
                        }
                        secretOptions = []
                    }
                    mountPoints            = []
                    name                   = "xray-daemon"
                    portMappings           = [
                        {
                            containerPort = 2000
                            hostPort      = 2000
                            protocol      = "udp"
                        },
                    ]
                    readonlyRootFilesystem = false
                    repositoryCredentials  = {
                        credentialsParameter = "arn:aws:secretsmanager:us-east-1:996905175585:secret:Shared/DockerHub"
                    }
                    volumesFrom            = []
                },
            ] # forces replacement
        )
      ~ id                       = "FeatureFlags-Prod" -> (known after apply)
      ~ revision                 = 342 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "FeatureFlags"
        }
        # (10 unchanged attributes hidden)
    }

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

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

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

Update

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

Replace

aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512

Change Result (Click me)

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-02-21T17:31:49Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:996905175585:b1aoz7w8yj/" -> (known after apply)
      ~ id            = "755qfj" -> (known after apply)
      ~ invoke_url    = "https://b1aoz7w8yj.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1708536673639" -> "1708552968953"
            # (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         = "755qfj" -> (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:897" -> (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:897/invocations" -> (known after apply)
        tags                           = {}
      ~ version                        = "897" -> (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:930" -> (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:930/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "FxAWebhookProxy"
        }
      ~ version                        = "930" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (4 unchanged blocks hidden)
    }

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

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

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

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

Create

local_file.application_ecs_service_appspec_94386B9C

Replace

aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4

Change Result (Click me)

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

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

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

:white_check_mark: Apply Succeeded (user-list-search-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.appspec will be created
  + resource "local_file" "appspec" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "node"
                                  + ContainerPort = 4000
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/UserListSearch-Prod-Apollo:372"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

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

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

Outputs:

workspace = "UserListSearch-Prod"

:white_check_mark: Apply Succeeded (parser-graphql-wrapper-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/ParserGraphQLWrapper-Prod:693" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ParserGraphQLWrapper-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/parsergraphqlwrapper-prod-app:17cfea9d123639879bbc3ef610c632f0e0fbe85b" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/parsergraphqlwrapper-prod-app:3af61a699ff44d342c17020e8204d0e3a797a740"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ParserGraphQLWrapper-Prod" -> (known after apply)
      ~ revision                 = 693 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ParserGraphQLWrapper"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ParserGraphQLWrapper-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 1s [id=ParserGraphQLWrapper-Prod]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=0ad509fd29da2cfe56e6710d155dccc1e0f09ed2]

Apply complete! Resources: 2 added, 0 changed, 1 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:339" -> (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:339/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDeleteMonitor"
        }
      ~ version                        = "339" -> (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]

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

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

Terraform will perform the following actions:

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

  # aws_lambda_function.batchdeletelambda_batch-delete-lambda_9A38729B will be updated in-place
  ~ resource "aws_lambda_function" "batchdeletelambda_batch-delete-lambda_9A38729B" {
        id                             = "AccountDataDeleter-Prod-BatchDeleteLambda-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:996905175585:function:AccountDataDeleter-Prod-BatchDeleteLambda-Function:405" -> (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:405/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "405" -> (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:638" -> (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:638/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "AccountDataDeleter"
        }
      ~ version                        = "638" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (4 unchanged blocks hidden)
    }

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

Plan: 2 to add, 2 to change, 1 to destroy.
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Destroying... [id=AccountDataDeleter-Prod]
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Destruction complete after 0s
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_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Creating...
aws_ecs_task_definition.data-deleter-app_application_ecs_service_ecs-task_243DED07: Creation complete after 0s [id=AccountDataDeleter-Prod]
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=94e6a504f38a1e2d7cd1199af264a508ff65287e]
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 8s [id=AccountDataDeleter-Prod-BatchDeleteLambda-Function]

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

:white_check_mark: Apply Succeeded (image-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/ImageAPI-Prod:181" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ImageAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/imageapi-prod-app:17cfea9d123639879bbc3ef610c632f0e0fbe85b" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/imageapi-prod-app:3af61a699ff44d342c17020e8204d0e3a797a740"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ImageAPI-Prod" -> (known after apply)
      ~ revision                 = 181 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ImageAPI"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ImageAPI-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=ImageAPI-Prod]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=4936d19b37492a3022a08b92f9829b88d4411aa5]

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

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

Terraform will perform the following actions:

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

        # (3 unchanged blocks hidden)
    }

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

Plan: 1 to add, 1 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=Push-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=Push-Prod]
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4: Modifying... [id=arn:aws:ecs:us-east-1:996905175585:service/Push-Prod/Push-Prod]
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4: Modifications complete after 0s [id=arn:aws:ecs:us-east-1:996905175585:service/Push-Prod/Push-Prod]

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

:white_check_mark: Apply Succeeded (feature-flags-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/FeatureFlags-Prod:342" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/FeatureFlags-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/featureflags-prod-app:17cfea9d123639879bbc3ef610c632f0e0fbe85b" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/featureflags-prod-app:3af61a699ff44d342c17020e8204d0e3a797a740"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
                {
                    command                = [
                        "--region",
                        "us-east-1",
                        "--local-mode",
                    ]
                    cpu                    = 0
                    environment            = []
                    essential              = true
                    image                  = "amazon/aws-xray-daemon"
                    logConfiguration       = {
                        logDriver     = "awslogs"
                        options       = {
                            awslogs-group         = "/ecs/FeatureFlags-Prod/xray-daemon20231129182155361100000003"
                            awslogs-region        = "us-east-1"
                            awslogs-stream-prefix = "ecs"
                        }
                        secretOptions = []
                    }
                    mountPoints            = []
                    name                   = "xray-daemon"
                    portMappings           = [
                        {
                            containerPort = 2000
                            hostPort      = 2000
                            protocol      = "udp"
                        },
                    ]
                    readonlyRootFilesystem = false
                    repositoryCredentials  = {
                        credentialsParameter = "arn:aws:secretsmanager:us-east-1:996905175585:secret:Shared/DockerHub"
                    }
                    volumesFrom            = []
                },
            ] # forces replacement
        )
      ~ id                       = "FeatureFlags-Prod" -> (known after apply)
      ~ revision                 = 342 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "FeatureFlags"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=FeatureFlags-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=FeatureFlags-Prod]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=e52faf122acffdd3d06ca5e8d226cc1b0ee1ab26]

Apply complete! Resources: 2 added, 0 changed, 1 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:359" -> (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:359/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "TransactionalEmails"
        }
      ~ version                        = "359" -> (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 6s [id=TransactionalEmails-Prod-Sqs-Event-Consumer-Function]

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

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

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

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

:white_check_mark: Apply Succeeded (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:358" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ShareableListsApi-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-prod-app:79324f6dfd0ef6d41452e2aae65122a7dd4116b4" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/shareablelistsapi-prod-app:3af61a699ff44d342c17020e8204d0e3a797a740"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ShareableListsApi-Prod" -> (known after apply)
      ~ revision                 = 358 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ShareableListsApi"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan: 2 to add, 0 to change, 1 to destroy.
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=214f020acd6460651ea8d00ca9007f0280bd461a]

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

:white_check_mark: Apply Succeeded (pocket-event-bridge-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_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C will be updated in-place
  ~ resource "aws_cloudwatch_metric_alarm" "shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C" {
      ~ dimensions                = {
          ~ "QueueName" = "PocketEventBridge-Prod-SNS-ShareableListItemEvents-Topic-DLQ" -> "PocketEventBridge-Prod-SNS-ShareableListEvents-Topic-DLQ"
        }
        id                        = "PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm"
        tags                      = {}
        # (17 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C: Modifying... [id=PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm]
aws_cloudwatch_metric_alarm.shareable-list-events_shareablelistevents-rule-dlq-alarm_FBCFA70C: Modifications complete after 0s [id=PocketEventBridge-Prod-ShareableListEvents-Rule-dlq-alarm]

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

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

Terraform will perform the following actions:

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

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

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

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

        # (4 unchanged blocks hidden)
    }

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

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

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

Plan: 2 to add, 2 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=AnnotationsAPI-Prod]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destruction complete after 0s
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=2903525986]
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=AnnotationsAPI-Prod]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=0e5842622171720b34ddb4a46b094c322aea3715]

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

:white_check_mark: Apply Succeeded (list-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/ListAPI-Prod:985" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:996905175585:task-definition/ListAPI-Prod" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  ~ image                  = "996905175585.dkr.ecr.us-east-1.amazonaws.com/listapi-prod-app:17cfea9d123639879bbc3ef610c632f0e0fbe85b" -> "996905175585.dkr.ecr.us-east-1.amazonaws.com/listapi-prod-app:3af61a699ff44d342c17020e8204d0e3a797a740"
                    name                   = "app"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (9 unchanged attributes hidden)
                },
              ~ {
                    name                   = "aws-otel-collector"
                  ~ portMappings           = [
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                      ~ {
                          - protocol      = "tcp"
                            # (2 unchanged attributes hidden)
                        },
                    ]
                    # (10 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "ListAPI-Prod" -> (known after apply)
      ~ revision                 = 985 -> (known after apply)
        tags                     = {
            "environment" = "Prod"
            "service"     = "ListAPI"
        }
        # (10 unchanged attributes hidden)
    }

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

Plan: 2 to add, 0 to change, 1 to destroy.
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Destroying... [id=ListAPI-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 1s [id=ListAPI-Prod]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=1222ddeb5cdb6feb33436f59861240832f161e09]

Apply complete! Resources: 2 added, 0 changed, 1 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-02-21T17:31:49Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:996905175585:b1aoz7w8yj/" -> (known after apply)
      ~ id            = "755qfj" -> (known after apply)
      ~ invoke_url    = "https://b1aoz7w8yj.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1708536673639" -> "1708553758724"
            # (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         = "755qfj" -> (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:897" -> (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:897/invocations" -> (known after apply)
        tags                           = {}
      ~ version                        = "897" -> (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:930" -> (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:930/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "FxAWebhookProxy"
        }
      ~ version                        = "930" -> (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 7s [id=FxAWebhookProxy-Prod-Sqs-FxA-Events-Function]
aws_lambda_function.apigateway-lambda_fxa-events-apigateway-lambda_events-lambda_06645171: Modifications complete after 8s [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=ts290p]
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 1s [id=ags-b1aoz7w8yj-prod]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 (deposed object 96bfed78): Destroying... [id=755qfj]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Destruction complete after 0s

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


cmd/compile: Optimize three-way string comparisons

As shown in strings.Compare's source code, three-way string comparisons can be optimized.
A few use cases are:

sorted slice merging
sorted slice intersection
sorted slice intersection detection

For the last use case my benchmark showed a over 10% improvement by using bytes.Compare instaed of strings.Compare.

@rsc

Currently we break string comparison ops into runtime calls during walk.
If we delayed that lowering until later in SSA, we could maybe detect the use of both s1 == s2 and s1 < s2 and use a single call in that case.

Perhaps the implementation should be moved to internal/bytealg.

This would be another possible use for an rtcall SSA pass: #24926
But it’d be better indeed to leave these unlowered until much later. Which would require making it reasonable to manipulate and insert calls in SSA. Which is yet another reason to move parameter and result handling into ssa ops instead of SP writes and reads. (I’m pretty sure I’ve written this paragraph a dozen times. I should just go do it.)

This would also be nice so that strings.Compare can have that rsc comment removed entirely, since it can be clearer to use it instead of the builtin operators in some cases, such as building a higher level comparison func.
type key struct {
  f1, f2, f3 string
}

func (k key) Compare(o key) int {
  if c := strings.Compare(k.f1, o.f1); c != 0 {
    return c
  }
  if c := strings.Compare(k.f2, o.f2); c != 0 {
    return c
  }
  if c := strings.Compare(k.f3, o.f3); c != 0 {
    return c
  }
  return 0
}

It is done for https://github.com/golang/go/issues/61725

Technically this issue isn't done, but since people can now call strings.Compare, close enough.


Home Page

Create a home page for this whole repository. Which will link to all projects that have a html page or their hosted link.
New file
index.html
Tasks

[ ] Create html file
[ ] Write the css
[ ] Make it dynamic

feel free to drop suggestions

I m interested on this. Can you tell about design how you want? Need more clarification on UI design.

Hey @utkarsh4321 actually I haven't gotten a design finalised yet but i'm thinking that will contain the following sections

Hero Section - GenAI Projects
About Section
Projects - All projects in repo
Events ( Upcoming sessions/events on ai)
Resources
Hackathons ( Hackathons related to GenAI or AI )
Contributors
New Ideas - Contact Form ( for non-tech people they can just send us ideas through there)
Footer - Social Links

But it might be hard to do all this at once. So work on any sections you think you can add. I am creating a new issue for design and once there are some ideas that pop in then you can start working on this.

Hey @yagyesh-bobde I am highly interested in this. I want to contribute to it as a swoc contributor. Please assign me this task.

@Harshil-Gupta21 you can refer to the #22 for the discussion on website design and can start working on it. @utkarsh4321 is assigned this task for now but you can  also contribute. You both can collaborate I'll consider both of ur contributions

You can use this url to get image of all contributors dynamically: https://contrib.rocks/image?repo=yagyesh-bobde/GenAI-Projects

@yagyesh-bobde inorder to work on the contributor page we need access token to get the contributors list from github api. you can read about the doc.
https://docs.github.com/en/rest/collaborators/collaborators?apiVersion=2022-11-28#list-repository-collaborators

For now just use the static image you get from this url :https://contrib.rocks/image?repo=yagyesh-bobde/GenAI-Projects
This is just a temp thing till then focus on other parts of the site

@yagyesh-bobde  Hi can you update on footer part of the figma design what is the finalized version for footer?


Feature/android using exo player

Please Note:
This PR is now replaced by: https://github.com/brentvatne/react-native-video/pull/256
The purpose of this PR is to replace default android MediaPlayer with ExoPlayer (via using a library com.devbrackets.android:exomedia) in order to support adaptive video streaming (e.g. M-DASH, HLS etc) on the android side.
Other changes include:

update to latest react-native version (0.23.0) on java side.
fix a start up error in the android demo code.
update to latest android build tools (23.0.3), android studio (2.2.0), gradle (2.10).

Some side effects due to ExoPlayer (android only):

looping not seems to be supported natively by ExoPlayer, currently a quick workaround is provided by manually re-setting the video source to the player, so there will be a smoothness issue there.
scale modes changed to the ExoPlayer supported ones (center, center_inside, center_crop, fit_center, none), currently only center_inside, center_crop are supported, and default mode is none.
raw folder is (currently) not supported by ExoPlayer, instead they need to be moved to assets folder and use path like "asset:///video.mp4".

Build fails for me. I'm on RN 0.27.1.
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':RCTVideo'.
> Could not resolve all dependencies for configuration ':RCTVideo:_debugCompile'.
   > Could not find any version that matches com.facebook.react:react-native:0.23.+.
     Versions that do not match:
         0.20.1
         0.20.0
         0.19.1
         0.19.0
         0.18.0
         + 12 more
     Searched in the following locations:
         file:/Users/burak/.m2/repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Users/burak/.m2/repository/com/facebook/react/react-native/
         https://jcenter.bintray.com/com/facebook/react/react-native/maven-metadata.xml
         file:/Volumes/data/mobile/MyApp/node_modules/node_modules/react-native/android/com/facebook/react/react-native/maven-metadata.xml
         file:/Volumes/data/mobile/MyApp/node_modules/node_modules/react-native/android/com/facebook/react/react-native/
         file:/Volumes/data/android-sdk-macosx/extras/android/m2repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Volumes/data/android-sdk-macosx/extras/android/m2repository/com/facebook/react/react-native/
         file:/Volumes/data/android-sdk-macosx/extras/google/m2repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Volumes/data/android-sdk-macosx/extras/google/m2repository/com/facebook/react/react-native/
     Required by:
         MyApp:RCTVideo:unspecified

please take following PR for latest RN 0.28.0 support.
https://github.com/brentvatne/react-native-video/pull/256


Rewrite LM/C/LSTS frontends in LSTS

Use smart strings and general best practices. Make it "feel" nice.

LSTS frontend TODO:

replace String with SmartString in types
replace CString with String in types
parse ascription :: in expression position
parse match expression
parse string destructuring on LHS
parse String literals
parse format strings in string literals
parse complex types with <> [] , compounds


improvement Remove the predicate that is always true for the segment

Proposed changes
By utilizing the zonemap index of the segment, we can ascertain if a predicate is always true. For example, if the segment’s maximum value is 100 and the predicate is col < 101, then this predicate is always true for this segment.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


feat: add command for install apps on a npmjs

Fixed #1457

@HashimotoYT test added, please review.


Java 11 compatibility

@mgierlings can you take a look at this/these PR's?

especially the changed test in this PR does need review b/c i needed to change the source/expected (java 11 formats the xml differently than java 8). I could use some help here on how to configure the formatter properly.

From what I can tell, the issue with the incorrect formatting is now resolved with the latest commits. Could you please verify that?

Btw, I am getting the following error when using OpenJDK 11
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Apparently, this will should be fixed with newer versions, so no problem, see https://github.com/google/guice/issues/1133

Btw, I am getting the following error when using OpenJDK 11
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Apparently, this will should be fixed with newer versions, so no problem, see google/guice#1133

I'm not seeing the illegal reflected access you mentioned. Could you tell me, when this happened? Guice is not a direct dependency of ModifiableVariable, nor does it seem to be a transitive dependency (according to mvn dependency:tree). Thus, I think you are just using an old version of maven that produces this errors on Java 11.

Yes, this seems to be only because of my mvn version:
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 14.0.1, vendor: Private Build, runtime: /usr/lib/jvm/java-14-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-51-generic", arch: "amd64", family: "unix"


Performance testing of Flutter apps

原文链接：https://medium.com/flutter/performance-testing-of-flutter-apps-df7669bb7df7

认领该任务


evidence grid should include a pending revisions count for each evidence item

Another idea is to have a warning near the top of the edit view when you start to edit an entity that has a pending revision.

Somewhat related to #223

EID tag on evidence grids now shows count of pending revisions in a tooltip.


Need to fix s3-cloudconfig-bootstrap.sh

To support signature version 4.

fixed by https://github.com/xuwang/aws-terraform/commit/5fa207000625751920415bceef98bc9d3dd4a45a


link syntax does not show in preview mode

link syntax
![height:800px](https://12bit.vn)
does not show in preview mode. I wish it would.

The new version should work, sorry for late reply

I've just installed open gate, and I think I have the same problem. Whether in read mode or live preview, and no matter which syntax I try, the link syntax doesn't display anything.
like this : ![height:800px](https://12bit.vn)
show this:


Get role name when not a C string

We will only have a C string if the specified role is a string. Otherwise, we need to resolve references to public, current_role, current_user, and session_user.
Fixes: https://github.com/neondatabase/cloud/issues/19323

I'd like to add some tests before merging.

Here's another scenario to test: Open a connection as user foo. In another connection, DROP USER foo. In the first connection, try to change the password.
Even on PostgreSQL, you can get errors like invalid role OID, cache lookup failed or tuple updated concurrently, with different variations of that test. But I wonder if you can also induce a NULL-pointer reference and segfault with these hooks.

role "foo" does not exist