feat(sendgrid-data): importing sendgrid-data from commit 2df7dcba093649e363d33b45b403f95f9ebe6db5

Goal
Migrate Sendgrid data  to the monorepo.
This lambda needed to be updated node18 per amazon, and when talking with @kirill-demtchouk we determined we still rely on data from sendgrid for transactional emails not yet in Braze.
https://mozilla-hub.atlassian.net/browse/POCKET-9472
https://mozilla-hub.atlassian.net/browse/POCKET-9455
Comparing
Use https://github.com/Pocket/pocket-monorepo/compare/0e3248fcb62dcfe15e01158fcfb343646bc5a289...a57bd820cd688826c2b686f18cf5b94a5816cd26 to compare after the initial copy and paste of the repo
ToDo

[x] Update build commands
[x] Switch to common ts config
[x] Switch to common eslint
[x] switch to local tf modules
[x] remove chai and sinon
[x] add in lambda ci
[x] setup local test environment
[x] test on dev
--- Roll forward with monorepo
[ ] Point Sendgrid at the new url
[ ] Destroy IAM and old infra cloudformation
[ ] turn off circeci building for original repo
[ ] add notice to original repo and archive

Note
This repo was not in terraform, nor did it have a custom domain, the deploy strategy here is to treat it as net new, and then updated the url in sendgrid.

Plan Result (shared-snowplow-consumer-cdk)
CI link
Plan: 1 to add, 0 to change, 0 to destroy.

Create

local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9

Change Result (Click me)

  # local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9 will be created
  + resource "local_file" "shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "app"
                                  + ContainerPort = 4015
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/SharedSnowplowConsumer-Prod:68"
                            }
                          + 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.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1993, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1993:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 1993, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 1993:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

Plan Result (parser-graphql-wrapper-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 = 4001
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/ParserGraphQLWrapper-Prod:629"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 2074, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 2074:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 2074, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 2074:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

Plan Result (image-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 = 4867
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/ImageAPI-Prod:119"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 2035, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 2035:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 2035, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 2035:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

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:187" -> (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:187/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "TransactionalEmails"
        }
      ~ version                        = "187" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (3 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1125, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1125:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 1125, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 1125:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

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

null_resource.application_ecs_service_create-task-definition-file_6BADBAF7

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 = 4005
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/ListAPI-Prod:921"
                            }
                          + Type       = "AWS::ECS::Service"
                        }
                    },
                ]
              + version   = 1
            }
        )
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "appspec.json"
      + id                   = (known after apply)
    }

  # null_resource.application_ecs_service_create-task-definition-file_6BADBAF7 must be replaced
-/+ resource "null_resource" "application_ecs_service_create-task-definition-file_6BADBAF7" {
      ~ id       = "1226033994187298422" -> (known after apply)
      ~ triggers = { # forces replacement
          ~ "alwaysRun" = "2024-01-10T17:59:38Z" -> (known after apply)
        }
    }

Plan: 2 to add, 0 to change, 1 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1971, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1971:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 1971, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 1971:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

Plan Result (user-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 = 4006
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/UserAPI-Prod:255"
                            }
                          + 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.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1976, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1976:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 1976, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 1976:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

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

Create

local_file.application_ecs_service_appspec_94386B9C

Update

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

Change Result (Click me)

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

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

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

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

        # (4 unchanged blocks hidden)
    }

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

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

Plan: 1 to add, 2 to change, 0 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 3003, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 3003:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 3003, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 3003:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

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-01-10T16:48:21Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:996905175585:b1aoz7w8yj/" -> (known after apply)
      ~ id            = "ezk58o" -> (known after apply)
      ~ invoke_url    = "https://b1aoz7w8yj.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1704905256623" -> "1704918058378"
            # (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         = "ezk58o" -> (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:729" -> (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:729/invocations" -> (known after apply)
        tags                           = {}
      ~ version                        = "729" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (3 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:762" -> (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:762/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Prod"
            "service"     = "FxAWebhookProxy"
        }
      ~ version                        = "762" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (3 unchanged blocks hidden)
    }

Plan: 1 to add, 3 to change, 1 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1672, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1672:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 1672, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 1672:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

Plan Result (sendgrid-data-cdk)
CI link
Plan: 39 to add, 0 to change, 0 to destroy.

Create

aws_acm_certificate.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA
aws_acm_certificate_validation.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637
aws_api_gateway_base_path_mapping.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512
aws_api_gateway_domain_name.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4
aws_api_gateway_integration.apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884
aws_api_gateway_method.apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7
aws_api_gateway_resource.apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204
aws_api_gateway_rest_api.apigateway-lambda_api-gateway-rest_FD4A1018
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9
aws_cloudwatch_log_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26
aws_codedeploy_app.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B
aws_codedeploy_deployment_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54
aws_iam_policy.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-role_9E2AE32B
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87
aws_lambda_alias.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F
aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476
aws_lambda_permission.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733
aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683
aws_s3_bucket_acl.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214
aws_s3_bucket_ownership_controls.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1
aws_s3_bucket_public_access_block.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A
aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B
pagerduty_service.pagerduty_pagerduty-critical_464EE7CD
pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197

Change Result (Click me)

  # aws_acm_certificate.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA will be created
  + resource "aws_acm_certificate" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA" {
      + arn                       = (known after apply)
      + domain_name               = "sendgrid-data.getpocket.com"
      + domain_validation_options = [
          + {
              + domain_name           = "sendgrid-data.getpocket.com"
              + resource_record_name  = (known after apply)
              + resource_record_type  = (known after apply)
              + resource_record_value = (known after apply)
            },
        ]
      + id                        = (known after apply)
      + key_algorithm             = (known after apply)
      + not_after                 = (known after apply)
      + not_before                = (known after apply)
      + pending_renewal           = (known after apply)
      + renewal_eligibility       = (known after apply)
      + renewal_summary           = (known after apply)
      + status                    = (known after apply)
      + subject_alternative_names = [
          + "sendgrid-data.getpocket.com",
        ]
      + tags_all                  = (known after apply)
      + type                      = (known after apply)
      + validation_emails         = (known after apply)
      + validation_method         = "DNS"
    }

  # aws_acm_certificate_validation.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637 will be created
  + resource "aws_acm_certificate_validation" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637" {
      + certificate_arn         = (known after apply)
      + id                      = (known after apply)
      + validation_record_fqdns = (known after apply)
    }

  # aws_api_gateway_base_path_mapping.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422 will be created
  + resource "aws_api_gateway_base_path_mapping" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422" {
      + api_id      = (known after apply)
      + domain_name = "sendgrid-data.getpocket.com"
      + id          = (known after apply)
      + stage_name  = "prod"
    }

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 will be created
  + resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      + created_date  = (known after apply)
      + execution_arn = (known after apply)
      + id            = (known after apply)
      + invoke_url    = (known after apply)
      + rest_api_id   = (known after apply)
      + triggers      = (known after apply)
    }

  # aws_api_gateway_domain_name.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4 will be created
  + resource "aws_api_gateway_domain_name" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4" {
      + arn                                    = (known after apply)
      + certificate_arn                        = (known after apply)
      + certificate_upload_date                = (known after apply)
      + cloudfront_domain_name                 = (known after apply)
      + cloudfront_zone_id                     = (known after apply)
      + domain_name                            = "sendgrid-data.getpocket.com"
      + id                                     = (known after apply)
      + ownership_verification_certificate_arn = (known after apply)
      + regional_domain_name                   = (known after apply)
      + regional_zone_id                       = (known after apply)
      + security_policy                        = (known after apply)
      + tags_all                               = (known after apply)
    }

  # aws_api_gateway_integration.apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884 will be created
  + resource "aws_api_gateway_integration" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884" {
      + cache_namespace         = (known after apply)
      + connection_type         = "INTERNET"
      + http_method             = "POST"
      + id                      = (known after apply)
      + integration_http_method = "POST"
      + passthrough_behavior    = (known after apply)
      + resource_id             = (known after apply)
      + rest_api_id             = (known after apply)
      + timeout_milliseconds    = 29000
      + type                    = "AWS_PROXY"
      + uri                     = (known after apply)
    }

  # aws_api_gateway_method.apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7 will be created
  + resource "aws_api_gateway_method" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7" {
      + api_key_required = false
      + authorization    = "NONE"
      + http_method      = "POST"
      + id               = (known after apply)
      + resource_id      = (known after apply)
      + rest_api_id      = (known after apply)
    }

  # aws_api_gateway_resource.apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204 will be created
  + resource "aws_api_gateway_resource" "apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204" {
      + id          = (known after apply)
      + parent_id   = (known after apply)
      + path        = (known after apply)
      + path_part   = "events"
      + rest_api_id = (known after apply)
    }

  # aws_api_gateway_rest_api.apigateway-lambda_api-gateway-rest_FD4A1018 will be created
  + resource "aws_api_gateway_rest_api" "apigateway-lambda_api-gateway-rest_FD4A1018" {
      + api_key_source               = (known after apply)
      + arn                          = (known after apply)
      + binary_media_types           = (known after apply)
      + created_date                 = (known after apply)
      + description                  = (known after apply)
      + disable_execute_api_endpoint = (known after apply)
      + execution_arn                = (known after apply)
      + id                           = (known after apply)
      + minimum_compression_size     = (known after apply)
      + name                         = "SendGridData-Prod-API-Gateway"
      + policy                       = (known after apply)
      + root_resource_id             = (known after apply)
      + tags_all                     = (known after apply)
    }

  # aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9 will be created
  + resource "aws_api_gateway_stage" "apigateway-lambda_api-gateway-stage_E95B0DF9" {
      + arn           = (known after apply)
      + deployment_id = (known after apply)
      + execution_arn = (known after apply)
      + id            = (known after apply)
      + invoke_url    = (known after apply)
      + rest_api_id   = (known after apply)
      + stage_name    = "prod"
      + tags_all      = (known after apply)
      + web_acl_arn   = (known after apply)
    }

  # aws_cloudwatch_log_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26 will be created
  + resource "aws_cloudwatch_log_group" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26" {
      + arn               = (known after apply)
      + id                = (known after apply)
      + log_group_class   = (known after apply)
      + name              = "/aws/lambda/SendGridData-Prod-ApiGateway-Function"
      + name_prefix       = (known after apply)
      + retention_in_days = 14
      + skip_destroy      = false
      + tags_all          = (known after apply)
    }

  # aws_codedeploy_app.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B will be created
  + resource "aws_codedeploy_app" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B" {
      + application_id      = (known after apply)
      + arn                 = (known after apply)
      + compute_platform    = "Lambda"
      + github_account_name = (known after apply)
      + id                  = (known after apply)
      + linked_to_github    = (known after apply)
      + name                = "SendGridData-Prod-ApiGateway-Lambda"
      + tags_all            = (known after apply)
    }

  # aws_codedeploy_deployment_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54 will be created
  + resource "aws_codedeploy_deployment_group" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54" {
      + app_name                    = "SendGridData-Prod-ApiGateway-Lambda"
      + arn                         = (known after apply)
      + compute_platform            = (known after apply)
      + deployment_config_name      = "CodeDeployDefault.LambdaAllAtOnce"
      + deployment_group_id         = (known after apply)
      + deployment_group_name       = "SendGridData-Prod-ApiGateway-Lambda"
      + id                          = (known after apply)
      + outdated_instances_strategy = "UPDATE"
      + service_role_arn            = (known after apply)
      + tags_all                    = (known after apply)

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

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

  # aws_iam_policy.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA will be created
  + resource "aws_iam_policy" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "SendGridData-Prod-ApiGateway-ExecutionRolePolicy"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "logs:PutLogEvents",
                          + "logs:DescribeLogStreams",
                          + "logs:CreateLogStream",
                          + "logs:CreateLogGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:logs:*:*:*"
                    },
                  + {
                      + Action   = [
                          + "firehose:PutRecordBatch",
                          + "firehose:PutRecord",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:firehose:*:*:deliverystream/prod-sendgrid-events-to-braveheart"
                    },
                  + {
                      + Action   = "cloudwatch:PutMetricData"
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "logs:PutLogEvents",
                          + "logs:DescribeLogStreams",
                          + "logs:CreateLogStream",
                          + "logs:CreateLogGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:logs:*:*:*"
                    },
                  + {
                      + Action   = [
                          + "ec2:DescribeNetworkInterfaces",
                          + "ec2:DescribeInstances",
                          + "ec2:DeleteNetworkInterface",
                          + "ec2:CreateNetworkInterface",
                          + "ec2:AttachNetworkInterface",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id   = (known after apply)
      + tags_all    = (known after apply)
    }

  # aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633 will be created
  + resource "aws_iam_role" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = [
                              + "lambda.amazonaws.com",
                              + "edgelambda.amazonaws.com",
                            ]
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "SendGridData-Prod-ApiGateway-ExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)
    }

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

  # aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2 will be created
  + resource "aws_iam_role_policy_attachment" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "SendGridData-Prod-ApiGateway-ExecutionRole"
    }

  # aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87 will be created
  + resource "aws_iam_role_policy_attachment" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda"
      + role       = "SendGridData-Prod-ApiGateway-CodeDeployRole"
    }

  # aws_lambda_alias.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F will be created
  + resource "aws_lambda_alias" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F" {
      + arn              = (known after apply)
      + function_name    = "SendGridData-Prod-ApiGateway-Function"
      + function_version = (known after apply)
      + id               = (known after apply)
      + invoke_arn       = (known after apply)
      + name             = "DEPLOYED"
    }

  # aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476 will be created
  + resource "aws_lambda_function" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476" {
      + architectures                  = (known after apply)
      + arn                            = (known after apply)
      + filename                       = "index.js.zip"
      + function_name                  = "SendGridData-Prod-ApiGateway-Function"
      + handler                        = "index.handler"
      + id                             = (known after apply)
      + invoke_arn                     = (known after apply)
      + last_modified                  = (known after apply)
      + memory_size                    = 128
      + package_type                   = "Zip"
      + publish                        = true
      + qualified_arn                  = (known after apply)
      + qualified_invoke_arn           = (known after apply)
      + reserved_concurrent_executions = -1
      + role                           = (known after apply)
      + runtime                        = "nodejs18.x"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + skip_destroy                   = false
      + source_code_hash               = "W3H4FeYY1XpXur5FoFbOhDmOD96dMyqqzRIkSf0dED4="
      + source_code_size               = (known after apply)
      + tags_all                       = (known after apply)
      + timeout                        = 120
      + version                        = (known after apply)

      + environment {
          + variables = {
              + "AWS_CLOUDWATCH_METRIC_NAMESPACE"   = "SendGridData-Prod"
              + "AWS_FIREHOSE_DELIVERY_STREAM_NAME" = "prod-sendgrid-events-to-braveheart"
              + "ENVIRONMENT"                       = "production"
              + "GIT_SHA"                           = (sensitive value)
              + "SENTRY_DSN"                        = (sensitive value)
            }
        }

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

  # aws_lambda_permission.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309 will be created
  + resource "aws_lambda_permission" "apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309" {
      + action              = "lambda:InvokeFunction"
      + function_name       = "SendGridData-Prod-ApiGateway-Function"
      + id                  = (known after apply)
      + principal           = "apigateway.amazonaws.com"
      + qualifier           = "DEPLOYED"
      + source_arn          = (known after apply)
      + statement_id        = (known after apply)
      + statement_id_prefix = (known after apply)
    }

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

  # aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4 will be created
  + resource "aws_route53_record" "apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "sendgrid-data.getpocket.com"
      + type            = "A"
      + zone_id         = (known after apply)

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

  # aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C will be created
  + resource "aws_route53_record" "apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "sendgrid-data.getpocket.com"
      + records         = (known after apply)
      + ttl             = 86400
      + type            = "NS"
      + zone_id         = "Z21HMDYFB951W4"
    }

  # aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733 will be created
  + resource "aws_route53_zone" "apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733" {
      + arn                 = (known after apply)
      + comment             = "Managed by Terraform"
      + force_destroy       = false
      + id                  = (known after apply)
      + name                = "sendgrid-data.getpocket.com"
      + name_servers        = (known after apply)
      + primary_name_server = (known after apply)
      + tags_all            = (known after apply)
      + zone_id             = (known after apply)
    }

  # aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683 will be created
  + resource "aws_s3_bucket" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "pocket-sendgriddata-prod-apigateway"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = true
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = (known after apply)
      + request_payer               = (known after apply)
      + tags_all                    = (known after apply)
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)
    }

  # aws_s3_bucket_acl.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214 will be created
  + resource "aws_s3_bucket_acl" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
    }

  # aws_s3_bucket_ownership_controls.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1 will be created
  + resource "aws_s3_bucket_ownership_controls" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + object_ownership = "BucketOwnerPreferred"
        }
    }

  # aws_s3_bucket_public_access_block.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A will be created
  + resource "aws_s3_bucket_public_access_block" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = false
      + restrict_public_buckets = false
    }

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

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

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

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

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

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

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

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

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

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

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

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

Plan: 39 to add, 0 to change, 0 to destroy.
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 900, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│  900:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

:warning: Warnings
Warning: Deprecated attribute

   on cdk.tf.json line 900, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
  900:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",

 The attribute "integration_key" is deprecated. Refer to the provider
 documentation for details.

 (and 3 more similar warnings elsewhere)

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creating...
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creation complete after 0s [id=20a39d70abc4a57d82a6794926b51e014a7a9575]
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1991, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1991:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

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

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

Terraform will perform the following actions:

  # aws_acm_certificate.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA will be created
  + resource "aws_acm_certificate" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA" {
      + arn                       = (known after apply)
      + domain_name               = "sendgrid-data.getpocket.dev"
      + domain_validation_options = [
          + {
              + domain_name           = "sendgrid-data.getpocket.dev"
              + resource_record_name  = (known after apply)
              + resource_record_type  = (known after apply)
              + resource_record_value = (known after apply)
            },
        ]
      + id                        = (known after apply)
      + key_algorithm             = (known after apply)
      + not_after                 = (known after apply)
      + not_before                = (known after apply)
      + pending_renewal           = (known after apply)
      + renewal_eligibility       = (known after apply)
      + renewal_summary           = (known after apply)
      + status                    = (known after apply)
      + subject_alternative_names = [
          + "sendgrid-data.getpocket.dev",
        ]
      + tags_all                  = (known after apply)
      + type                      = (known after apply)
      + validation_emails         = (known after apply)
      + validation_method         = "DNS"
    }

  # aws_acm_certificate_validation.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637 will be created
  + resource "aws_acm_certificate_validation" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637" {
      + certificate_arn         = (known after apply)
      + id                      = (known after apply)
      + validation_record_fqdns = (known after apply)
    }

  # aws_api_gateway_base_path_mapping.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422 will be created
  + resource "aws_api_gateway_base_path_mapping" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422" {
      + api_id      = (known after apply)
      + domain_name = "sendgrid-data.getpocket.dev"
      + id          = (known after apply)
      + stage_name  = "dev"
    }

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 will be created
  + resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      + created_date  = (known after apply)
      + execution_arn = (known after apply)
      + id            = (known after apply)
      + invoke_url    = (known after apply)
      + rest_api_id   = (known after apply)
      + triggers      = (known after apply)
    }

  # aws_api_gateway_domain_name.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4 will be created
  + resource "aws_api_gateway_domain_name" "apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4" {
      + arn                                    = (known after apply)
      + certificate_arn                        = (known after apply)
      + certificate_upload_date                = (known after apply)
      + cloudfront_domain_name                 = (known after apply)
      + cloudfront_zone_id                     = (known after apply)
      + domain_name                            = "sendgrid-data.getpocket.dev"
      + id                                     = (known after apply)
      + ownership_verification_certificate_arn = (known after apply)
      + regional_domain_name                   = (known after apply)
      + regional_zone_id                       = (known after apply)
      + security_policy                        = (known after apply)
      + tags_all                               = (known after apply)
    }

  # aws_api_gateway_integration.apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884 will be created
  + resource "aws_api_gateway_integration" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884" {
      + cache_namespace         = (known after apply)
      + connection_type         = "INTERNET"
      + http_method             = "POST"
      + id                      = (known after apply)
      + integration_http_method = "POST"
      + passthrough_behavior    = (known after apply)
      + resource_id             = (known after apply)
      + rest_api_id             = (known after apply)
      + timeout_milliseconds    = 29000
      + type                    = "AWS_PROXY"
      + uri                     = (known after apply)
    }

  # aws_api_gateway_method.apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7 will be created
  + resource "aws_api_gateway_method" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7" {
      + api_key_required = false
      + authorization    = "NONE"
      + http_method      = "POST"
      + id               = (known after apply)
      + resource_id      = (known after apply)
      + rest_api_id      = (known after apply)
    }

  # aws_api_gateway_resource.apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204 will be created
  + resource "aws_api_gateway_resource" "apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204" {
      + id          = (known after apply)
      + parent_id   = (known after apply)
      + path        = (known after apply)
      + path_part   = "events"
      + rest_api_id = (known after apply)
    }

  # aws_api_gateway_rest_api.apigateway-lambda_api-gateway-rest_FD4A1018 will be created
  + resource "aws_api_gateway_rest_api" "apigateway-lambda_api-gateway-rest_FD4A1018" {
      + api_key_source               = (known after apply)
      + arn                          = (known after apply)
      + binary_media_types           = (known after apply)
      + created_date                 = (known after apply)
      + description                  = (known after apply)
      + disable_execute_api_endpoint = (known after apply)
      + execution_arn                = (known after apply)
      + id                           = (known after apply)
      + minimum_compression_size     = (known after apply)
      + name                         = "SendGridData-Dev-API-Gateway"
      + policy                       = (known after apply)
      + root_resource_id             = (known after apply)
      + tags_all                     = (known after apply)
    }

  # aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9 will be created
  + resource "aws_api_gateway_stage" "apigateway-lambda_api-gateway-stage_E95B0DF9" {
      + arn           = (known after apply)
      + deployment_id = (known after apply)
      + execution_arn = (known after apply)
      + id            = (known after apply)
      + invoke_url    = (known after apply)
      + rest_api_id   = (known after apply)
      + stage_name    = "dev"
      + tags_all      = (known after apply)
      + web_acl_arn   = (known after apply)
    }

  # aws_cloudwatch_log_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26 will be created
  + resource "aws_cloudwatch_log_group" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26" {
      + arn               = (known after apply)
      + id                = (known after apply)
      + log_group_class   = (known after apply)
      + name              = "/aws/lambda/SendGridData-Dev-ApiGateway-Function"
      + name_prefix       = (known after apply)
      + retention_in_days = 14
      + skip_destroy      = false
      + tags_all          = (known after apply)
    }

  # aws_codedeploy_app.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B will be created
  + resource "aws_codedeploy_app" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B" {
      + application_id      = (known after apply)
      + arn                 = (known after apply)
      + compute_platform    = "Lambda"
      + github_account_name = (known after apply)
      + id                  = (known after apply)
      + linked_to_github    = (known after apply)
      + name                = "SendGridData-Dev-ApiGateway-Lambda"
      + tags_all            = (known after apply)
    }

  # aws_codedeploy_deployment_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54 will be created
  + resource "aws_codedeploy_deployment_group" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54" {
      + app_name                    = "SendGridData-Dev-ApiGateway-Lambda"
      + arn                         = (known after apply)
      + compute_platform            = (known after apply)
      + deployment_config_name      = "CodeDeployDefault.LambdaAllAtOnce"
      + deployment_group_id         = (known after apply)
      + deployment_group_name       = "SendGridData-Dev-ApiGateway-Lambda"
      + id                          = (known after apply)
      + outdated_instances_strategy = "UPDATE"
      + service_role_arn            = (known after apply)
      + tags_all                    = (known after apply)

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

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

  # aws_iam_policy.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA will be created
  + resource "aws_iam_policy" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "SendGridData-Dev-ApiGateway-ExecutionRolePolicy"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "logs:PutLogEvents",
                          + "logs:DescribeLogStreams",
                          + "logs:CreateLogStream",
                          + "logs:CreateLogGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:logs:*:*:*"
                    },
                  + {
                      + Action   = [
                          + "firehose:PutRecordBatch",
                          + "firehose:PutRecord",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:firehose:*:*:deliverystream/dev-sendgrid-events-to-braveheart"
                    },
                  + {
                      + Action   = "cloudwatch:PutMetricData"
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "logs:PutLogEvents",
                          + "logs:DescribeLogStreams",
                          + "logs:CreateLogStream",
                          + "logs:CreateLogGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:logs:*:*:*"
                    },
                  + {
                      + Action   = [
                          + "ec2:DescribeNetworkInterfaces",
                          + "ec2:DescribeInstances",
                          + "ec2:DeleteNetworkInterface",
                          + "ec2:CreateNetworkInterface",
                          + "ec2:AttachNetworkInterface",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id   = (known after apply)
      + tags_all    = (known after apply)
    }

  # aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633 will be created
  + resource "aws_iam_role" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = [
                              + "lambda.amazonaws.com",
                              + "edgelambda.amazonaws.com",
                            ]
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "SendGridData-Dev-ApiGateway-ExecutionRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)
    }

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

  # aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2 will be created
  + resource "aws_iam_role_policy_attachment" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = "SendGridData-Dev-ApiGateway-ExecutionRole"
    }

  # aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87 will be created
  + resource "aws_iam_role_policy_attachment" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda"
      + role       = "SendGridData-Dev-ApiGateway-CodeDeployRole"
    }

  # aws_lambda_alias.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F will be created
  + resource "aws_lambda_alias" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F" {
      + arn              = (known after apply)
      + function_name    = "SendGridData-Dev-ApiGateway-Function"
      + function_version = (known after apply)
      + id               = (known after apply)
      + invoke_arn       = (known after apply)
      + name             = "DEPLOYED"
    }

  # aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476 will be created
  + resource "aws_lambda_function" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476" {
      + architectures                  = (known after apply)
      + arn                            = (known after apply)
      + filename                       = "index.js.zip"
      + function_name                  = "SendGridData-Dev-ApiGateway-Function"
      + handler                        = "index.handler"
      + id                             = (known after apply)
      + invoke_arn                     = (known after apply)
      + last_modified                  = (known after apply)
      + memory_size                    = 128
      + package_type                   = "Zip"
      + publish                        = true
      + qualified_arn                  = (known after apply)
      + qualified_invoke_arn           = (known after apply)
      + reserved_concurrent_executions = -1
      + role                           = (known after apply)
      + runtime                        = "nodejs18.x"
      + signing_job_arn                = (known after apply)
      + signing_profile_version_arn    = (known after apply)
      + skip_destroy                   = false
      + source_code_hash               = "W3H4FeYY1XpXur5FoFbOhDmOD96dMyqqzRIkSf0dED4="
      + source_code_size               = (known after apply)
      + tags_all                       = (known after apply)
      + timeout                        = 120
      + version                        = (known after apply)

      + environment {
          + variables = {
              + "AWS_CLOUDWATCH_METRIC_NAMESPACE"   = "SendGridData-Dev"
              + "AWS_FIREHOSE_DELIVERY_STREAM_NAME" = "dev-sendgrid-events-to-braveheart"
              + "ENVIRONMENT"                       = "development"
              + "GIT_SHA"                           = (sensitive value)
              + "SENTRY_DSN"                        = (sensitive value)
            }
        }

      + vpc_config {
          + ipv6_allowed_for_dual_stack = false
          + security_group_ids          = [
              + "sg-0cd18cc5aad4faa4f",
            ]
          + subnet_ids                  = [
              + "subnet-04478ac1c55709b1f",
              + "subnet-07854aac95d07bb16",
              + "subnet-0a6c00fa564f97b10",
              + "subnet-0eb99fe10e08d5d96",
            ]
          + vpc_id                      = (known after apply)
        }
    }

  # aws_lambda_permission.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309 will be created
  + resource "aws_lambda_permission" "apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309" {
      + action              = "lambda:InvokeFunction"
      + function_name       = "SendGridData-Dev-ApiGateway-Function"
      + id                  = (known after apply)
      + principal           = "apigateway.amazonaws.com"
      + qualifier           = "DEPLOYED"
      + source_arn          = (known after apply)
      + statement_id        = (known after apply)
      + statement_id_prefix = (known after apply)
    }

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

  # aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4 will be created
  + resource "aws_route53_record" "apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "sendgrid-data.getpocket.dev"
      + type            = "A"
      + zone_id         = (known after apply)

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

  # aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C will be created
  + resource "aws_route53_record" "apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C" {
      + allow_overwrite = (known after apply)
      + fqdn            = (known after apply)
      + id              = (known after apply)
      + name            = "sendgrid-data.getpocket.dev"
      + records         = (known after apply)
      + ttl             = 86400
      + type            = "NS"
      + zone_id         = "ZCSIDA846KWLN"
    }

  # aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733 will be created
  + resource "aws_route53_zone" "apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733" {
      + arn                 = (known after apply)
      + comment             = "Managed by Terraform"
      + force_destroy       = false
      + id                  = (known after apply)
      + name                = "sendgrid-data.getpocket.dev"
      + name_servers        = (known after apply)
      + primary_name_server = (known after apply)
      + tags_all            = (known after apply)
      + zone_id             = (known after apply)
    }

  # aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683 will be created
  + resource "aws_s3_bucket" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "pocket-sendgriddata-dev-apigateway"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = true
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = (known after apply)
      + request_payer               = (known after apply)
      + tags_all                    = (known after apply)
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)
    }

  # aws_s3_bucket_acl.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214 will be created
  + resource "aws_s3_bucket_acl" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214" {
      + acl    = "private"
      + bucket = (known after apply)
      + id     = (known after apply)
    }

  # aws_s3_bucket_ownership_controls.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1 will be created
  + resource "aws_s3_bucket_ownership_controls" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + object_ownership = "BucketOwnerPreferred"
        }
    }

  # aws_s3_bucket_public_access_block.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A will be created
  + resource "aws_s3_bucket_public_access_block" "apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A" {
      + block_public_acls       = true
      + block_public_policy     = true
      + bucket                  = (known after apply)
      + id                      = (known after apply)
      + ignore_public_acls      = false
      + restrict_public_buckets = false
    }

Plan: 29 to add, 0 to change, 0 to destroy.
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633: Creating...
aws_iam_policy.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA: Creating...
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-role_9E2AE32B: Creating...
aws_acm_certificate.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA: Creating...
aws_codedeploy_app.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B: Creating...
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Creating...
aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683: Creating...
aws_api_gateway_rest_api.apigateway-lambda_api-gateway-rest_FD4A1018: Creating...
aws_iam_policy.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-policy_77491FAA: Creation complete after 1s [id=arn:aws:iam::410318598490:policy/SendGridData-Dev-ApiGateway-ExecutionRolePolicy]
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role_CCB05633: Creation complete after 1s [id=SendGridData-Dev-ApiGateway-ExecutionRole]
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2: Creating...
aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476: Creating...
aws_iam_role.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-role_9E2AE32B: Creation complete after 1s [id=SendGridData-Dev-ApiGateway-CodeDeployRole]
aws_codedeploy_app.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-app_4D0EC70B: Creation complete after 1s [id=c4289a05-c93d-4432-8bf2-659679caa806:SendGridData-Dev-ApiGateway-Lambda]
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87: Creating...
aws_codedeploy_deployment_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54: Creating...
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_execution-role-policy-attachment_8DF035D2: Creation complete after 0s [id=SendGridData-Dev-ApiGateway-ExecutionRole-20240110231530742700000003]
aws_iam_role_policy_attachment.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deploy-policy-attachment_2AFCAC87: Creation complete after 0s [id=SendGridData-Dev-ApiGateway-CodeDeployRole-20240110231530761400000004]
aws_api_gateway_rest_api.apigateway-lambda_api-gateway-rest_FD4A1018: Creation complete after 1s [id=yz6x5li9y0]
aws_api_gateway_resource.apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204: Creating...
aws_api_gateway_resource.apigateway-lambda_sendgrid-data-apigateway-lambda_events_2B884204: Creation complete after 0s [id=r0dngj]
aws_api_gateway_method.apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7: Creating...
aws_api_gateway_method.apigateway-lambda_sendgrid-data-apigateway-lambda_events-method_CADF1EB7: Creation complete after 0s [id=agm-yz6x5li9y0-r0dngj-POST]
aws_acm_certificate.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_997CB9AA: Creation complete after 6s [id=arn:aws:acm:us-east-1:410318598490:certificate/d291e1a6-f4ef-4986-b6f5-cc5a3a618fc0]
aws_codedeploy_deployment_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_lambda-code-deploy_code-deployment-group_2C886C54: Creation complete after 8s [id=2b920771-b2b2-4ab2-9577-53c8354fa058]
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Still creating... [10s elapsed]
aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683: Still creating... [10s elapsed]
aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476: Still creating... [10s elapsed]
aws_lambda_function.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_EC760476: Creation complete after 15s [id=SendGridData-Dev-ApiGateway-Function]
aws_cloudwatch_log_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26: Creating...
aws_lambda_alias.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F: Creating...
aws_lambda_alias.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F: Creation complete after 0s [id=arn:aws:lambda:us-east-1:410318598490:function:SendGridData-Dev-ApiGateway-Function:DEPLOYED]
aws_api_gateway_integration.apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884: Creating...
aws_cloudwatch_log_group.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_log-group_EB81EF26: Creation complete after 0s [id=/aws/lambda/SendGridData-Dev-ApiGateway-Function]
aws_api_gateway_integration.apigateway-lambda_sendgrid-data-apigateway-lambda_events-integration_B8DFA884: Creation complete after 0s [id=agi-yz6x5li9y0-r0dngj-POST]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creating...
aws_s3_bucket.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket_18555683: Creation complete after 16s [id=pocket-sendgriddata-dev-apigateway]
aws_s3_bucket_public_access_block.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A: Creating...
aws_s3_bucket_ownership_controls.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1: Creating...
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Creation complete after 1s [id=2q5jzo]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Creating...
aws_s3_bucket_public_access_block.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-public-access-block_8F10AA5A: Creation complete after 1s [id=pocket-sendgriddata-dev-apigateway]
aws_s3_bucket_ownership_controls.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-ownership-controls_C7E7E6F1: Creation complete after 1s [id=pocket-sendgriddata-dev-apigateway]
aws_s3_bucket_acl.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214: Creating...
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Creation complete after 0s [id=ags-yz6x5li9y0-dev]
aws_lambda_permission.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309: Creating...
aws_s3_bucket_acl.apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_code-bucket-acl_34517214: Creation complete after 0s [id=pocket-sendgriddata-dev-apigateway,private]
aws_lambda_permission.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-lambda_sendgrid-data-apigateway-lambda_events-lambda_alias_C748F79F-allow-gateway-lambda-invoke_3CDE9309: Creation complete after 0s [id=terraform-20240110231546778900000005]
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Still creating... [20s elapsed]
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Still creating... [30s elapsed]
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Still creating... [40s elapsed]
aws_route53_zone.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_4DA9F733: Creation complete after 50s [id=Z087040334NE8PGMB8N3C]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Creating...
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Creating...
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Still creating... [10s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Still creating... [10s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Still creating... [20s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Still creating... [20s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Still creating... [30s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Still creating... [30s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Still creating... [40s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Still creating... [40s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_record_9F660571: Creation complete after 47s [id=Z087040334NE8PGMB8N3C__a619665826c77afdc4164923662d6617.sendgrid-data.getpocket.dev._CNAME]
aws_acm_certificate_validation.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637: Creating...
aws_acm_certificate_validation.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-certificate_certificate_validation_24F8D637: Creation complete after 0s [id=2024-01-10 23:16:48.37 +0000 UTC]
aws_api_gateway_domain_name.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4: Creating...
aws_api_gateway_domain_name.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-domain-name_30FE02A4: Creation complete after 3s [id=sendgrid-data.getpocket.dev]
aws_api_gateway_base_path_mapping.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422: Creating...
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Creating...
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Still creating... [50s elapsed]
aws_api_gateway_base_path_mapping.apigateway-lambda_sendgrid-data-apigateway-lambda_api-gateway-base-path-mapping_E12C6422: Creation complete after 0s [id=sendgrid-data.getpocket.dev/]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_base-dns_subhosted_zone_ns_DC05E26C: Creation complete after 55s [id=ZCSIDA846KWLN_sendgrid-data.getpocket.dev_NS]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Still creating... [10s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Still creating... [20s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Still creating... [30s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Still creating... [40s elapsed]
aws_route53_record.apigateway-lambda_sendgrid-data-apigateway-lambda_apigateway-route53-domain-record_997C8CE4: Creation complete after 47s [id=Z087040334NE8PGMB8N3C_sendgrid-data.getpocket.dev_A]

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

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=0ce4bcc4536ea7558626d33b50a09821dc589752]
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 2258, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 2258:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

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

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

Terraform will perform the following actions:

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

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

        # (3 unchanged blocks hidden)
    }

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

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

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

Terraform will perform the following actions:

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

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

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

:white_check_mark: Apply Succeeded (list-api-cdk-dev)
CI link
Apply complete! Resources: 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:

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

  # null_resource.application_ecs_service_create-task-definition-file_6BADBAF7 must be replaced
-/+ resource "null_resource" "application_ecs_service_create-task-definition-file_6BADBAF7" {
      ~ id       = "7358919436660985986" -> (known after apply)
      ~ triggers = { # forces replacement
          ~ "alwaysRun" = "2024-01-10T21:55:57Z" -> (known after apply)
        }
    }

Plan: 2 to add, 0 to change, 1 to destroy.
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7: Destroying... [id=7358919436660985986]
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7: Destruction complete after 0s
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7: Creating...
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7: Provisioning with 'local-exec'...
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7 (local-exec): Executing: ["/bin/sh" "-c" "aws --region us-east-1 ecs describe-task-definition --task-definition ListAPI-Dev --query 'taskDefinition' >> taskdef.json"]
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=139012846c02672f3ad0a8ce8e1c232fe90b95c7]
null_resource.application_ecs_service_create-task-definition-file_6BADBAF7: Creation complete after 1s [id=7359550786057164781]
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 2155, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 2155:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

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

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

Terraform will perform the following actions:

  # aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 must be replaced
+/- resource "aws_api_gateway_deployment" "apigateway-lambda_api-gateway-deployment_3AF9B512" {
      ~ created_date  = "2024-01-10T23:25:31Z" -> (known after apply)
      ~ execution_arn = "arn:aws:execute-api:us-east-1:410318598490:yz6x5li9y0/" -> (known after apply)
      ~ id            = "f7yuvc" -> (known after apply)
      ~ invoke_url    = "https://yz6x5li9y0.execute-api.us-east-1.amazonaws.com/" -> (known after apply)
      ~ triggers      = { # forces replacement
          ~ "deployedAt"   = "1704929103649" -> "1704929858186"
            # (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         = "f7yuvc" -> (known after apply)
        id                    = "ags-yz6x5li9y0-dev"
        tags                  = {}
        # (9 unchanged attributes hidden)
    }

Plan: 1 to add, 1 to change, 1 to destroy.
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=yuziv3]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifying... [id=ags-yz6x5li9y0-dev]
aws_api_gateway_stage.apigateway-lambda_api-gateway-stage_E95B0DF9: Modifications complete after 0s [id=ags-yz6x5li9y0-dev]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512 (deposed object c8dad967): Destroying... [id=f7yuvc]
aws_api_gateway_deployment.apigateway-lambda_api-gateway-deployment_3AF9B512: Destruction complete after 0s

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

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creating...
local_file.shared-snowplow-consumer-app_application_ecs_service_appspec_7674CFF9: Creation complete after 0s [id=20a39d70abc4a57d82a6794926b51e014a7a9575]
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 1991, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 1991:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

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

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

Terraform will perform the following actions:

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

Plan: 1 to add, 0 to change, 0 to destroy.
local_file.application_ecs_service_appspec_94386B9C: Creating...
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=0ce4bcc4536ea7558626d33b50a09821dc589752]
╷
│ Warning: Deprecated attribute
│
│   on cdk.tf.json line 2258, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
│ 2258:         "endpoint": "https://events.pagerduty.com/integration/${pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5.integration_key}/enqueue",
│
│ The attribute "integration_key" is deprecated. Refer to the provider
│ documentation for details.
│
│ (and 3 more similar warnings elsewhere)
╵

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

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

Terraform will perform the following actions:

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

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

        # (3 unchanged blocks hidden)
    }

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

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

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

Terraform will perform the following actions:

  # local_file.application_ecs_service_appspec_94386B9C will be created
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = jsonencode(
            {