Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adding prospect-api from a679afe4108f3651c33427f16b2fb02c46afe3a1 #7

Merged
merged 9 commits into from
Jan 10, 2024

Conversation

katerinachinnappan
Copy link
Collaborator

@katerinachinnappan katerinachinnappan commented Jan 10, 2024

Migrating prospect-api from latest commit on main.

Please double check the prod tf plan produced in the CI/CD.

Adding circleCI pattern

Also added pocket terraform-modules as our internal package.

Deployed to dev

https://mozilla-hub.atlassian.net/browse/MC-390

@pocket-ci
Copy link

✅ Apply Succeeded (prospect-api-cdk-dev)

CI link

Apply complete! Resources: 1 added, 2 changed, 0 destroyed.
Details (Click me)
data.terraform_remote_state.incident_management: Reading...
data.archive_file.translation-lambda_translation-sqs-lambda_lambda-default-file_FF0D2463: Reading...
data.pagerduty_vendor.pagerduty_cloudwatch_7956692A: Reading...
data.pagerduty_vendor.pagerduty_sentry_FFB12B7C: Reading...
data.archive_file.translation-lambda_translation-sqs-lambda_lambda-default-file_FF0D2463: Read complete after 0s [id=2b764d3b21b3c9f088f043bc205556d3519be551]
data.aws_ssm_parameter.pocket-vpc_vpc_ssm_param_17802658: Reading...
aws_ecr_repository.application_ecs_service_ecr-app_ecr-repo_ABFE17F0: Refreshing state... [id=prospectapi-dev-app]
data.aws_iam_policy_document.application_ecs_service_ecs_codedeploy_codedeploy_assume_role_C76E7224: Reading...
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_vpc_ssm_param_8DFBB095: Reading...
aws_s3_bucket.image-uploads: Refreshing state... [id=pocket-prospectapi-dev-images]
aws_route53_zone.application_base_dns_subhosted_zone_77521D1C: Refreshing state... [id=Z07747349K0HE9ZG8VFL]
aws_ecs_cluster.application_ecs_cluster_4DC6EFB3: Refreshing state... [id=arn:aws:ecs:us-east-1:410318598490:cluster/ProspectAPI-Dev]
data.aws_iam_policy_document.application_ecs_service_ecs_codedeploy_codedeploy_assume_role_C76E7224: Read complete after 0s [id=4250039221]
data.aws_ssm_parameter.application_pocket_vpc_vpc_ssm_param_DD9C7A4F: Reading...
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_vpc_ssm_param_8DFBB095: Read complete after 0s [id=/Shared/Vpc]
data.aws_ssm_parameter.application_pocket_vpc_vpc_ssm_param_DD9C7A4F: Read complete after 0s [id=/Shared/Vpc]
data.aws_ssm_parameter.pocket-vpc_vpc_ssm_param_17802658: Read complete after 0s [id=/Shared/Vpc]
data.aws_kms_alias.application_pocket_vpc_secrets_manager_key_2C3C8766: Reading...
data.aws_kms_alias.pocket-vpc_secrets_manager_key_BF1637BF: Reading...
aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_redrive_sqs_queue_25D64172: Refreshing state... [id=https://sqs.us-east-1.amazonaws.com/410318598490/ProspectAPI-Dev-Sqs-Translation-Queue-Deadletter]
data.aws_ssm_parameter.pocket-vpc_public_subnets_7F9CDB28: Reading...
aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E: Refreshing state... [id=PROAPI-Dev-Prospects]
data.aws_ssm_parameter.pocket-vpc_public_subnets_7F9CDB28: Read complete after 0s [id=/Shared/PublicSubnets]
data.aws_ssm_parameter.translation-lambda_sentry-dsn_FBCEB305: Reading...
data.aws_kms_alias.application_pocket_vpc_secrets_manager_key_2C3C8766: Read complete after 0s [id=arn:aws:kms:us-east-1:410318598490:alias/aws/secretsmanager]
data.aws_kms_alias.translation-lambda_pocket-shared-vpc_secrets_manager_key_58B66F25: Reading...
data.terraform_remote_state.incident_management: Read complete after 1s
data.aws_iam_policy_document.application_ecs_service_ecs-iam_ecs-task-assume_05903663: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_ecs-task-assume_05903663: Read complete after 0s [id=1077804475]
data.aws_ssm_parameter.translation-lambda_sentry-dsn_FBCEB305: Read complete after 0s [id=/ProspectAPI/Dev/SENTRY_DSN]
data.aws_kms_alias.translation-lambda_pocket-shared-vpc_secrets_manager_key_58B66F25: Read complete after 0s [id=arn:aws:kms:us-east-1:410318598490:alias/aws/secretsmanager]
data.aws_kms_alias.pocket-vpc_secrets_manager_key_BF1637BF: Read complete after 0s [id=arn:aws:kms:us-east-1:410318598490:alias/aws/secretsmanager]
aws_codedeploy_app.application_ecs_service_ecs_codedeploy_ecs_code_deploy_C2F7CBCF: Refreshing state... [id=4ee018c2-d5c1-4bf8-b940-2f4894b7a04b:ProspectAPI-Dev-ECS]
data.aws_region.application_pocket_vpc_current_region_7774DA97: Reading...
data.aws_region.application_pocket_vpc_current_region_7774DA97: Read complete after 0s [id=us-east-1]
data.aws_ssm_parameter.translation-lambda_service-hash_F58F05EF: Reading...
aws_s3_bucket.translation-lambda_translation-sqs-lambda_code-bucket_8041EB81: Refreshing state... [id=pocket-prospectapi-dev-sqs-translation]
data.aws_caller_identity.application_pocket_vpc_current_identity_0A422301: Reading...
data.aws_caller_identity.application_pocket_vpc_current_identity_0A422301: Read complete after 0s [id=410318598490]
aws_sns_topic.pagerduty_alarm-critical-topic_F1534579: Refreshing state... [id=arn:aws:sns:us-east-1:410318598490:ProspectAPI-Dev-Infrastructure-Alarm-Critical]
aws_codedeploy_app.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-app_E422EADB: Refreshing state... [id=eade583b-0d01-404c-ae96-10b8f0995609:ProspectAPI-Dev-Sqs-Translation-Lambda]
data.aws_ssm_parameter.translation-lambda_service-hash_F58F05EF: Read complete after 0s [id=/ProspectAPI/CircleCI/Dev/SERVICE_HASH]
data.aws_region.pocket-vpc_current_region_1602AAD6: Reading...
data.aws_region.pocket-vpc_current_region_1602AAD6: Read complete after 0s [id=us-east-1]
aws_acm_certificate.application_alb_certificate_93966247: Refreshing state... [id=arn:aws:acm:us-east-1:410318598490:certificate/8ad52ecf-43c6-4984-bf41-c9e997988fc5]
data.aws_region.application_ecs_service_ecs_codedeploy_current_region_A377EAA5: Reading...
data.aws_region.application_ecs_service_ecs_codedeploy_current_region_A377EAA5: Read complete after 0s [id=us-east-1]
aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3: Refreshing state... [id=arn:aws:sns:us-east-1:410318598490:ProspectAPI-Dev-Infrastructure-Alarm-Non-Critical]
data.aws_kms_alias.kms_alias: Reading...
data.aws_kms_alias.kms_alias: Read complete after 0s [id=arn:aws:kms:us-east-1:410318598490:alias/aws/secretsmanager]
data.aws_route53_zone.application_base_dns_main_hosted_zone_0141FA96: Reading...
aws_cloudwatch_log_group.app-log-group: Refreshing state... [id=/Backend/ProspectAPI-Dev/ecs/app]
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_assume-policy-document_58FCE41C: Reading...
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_assume-policy-document_58FCE41C: Read complete after 0s [id=1349007126]
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_private_subnets_8A1FDA95: Reading...
data.aws_sns_topic.backend_notifications: Reading...
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_private_subnets_8A1FDA95: Read complete after 0s [id=/Shared/PrivateSubnets]
data.aws_sns_topic.backend_notifications: Read complete after 0s [id=arn:aws:sns:us-east-1:410318598490:Backend-Dev-ChatBot]
data.aws_ssm_parameter.pocket-vpc_private_subnets_75BAFB11: Reading...
data.aws_caller_identity.application_ecs_service_ecs_codedeploy_current_account_110B92B7: Reading...
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-assume-role-policy-document_DC564871: Reading...
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-assume-role-policy-document_DC564871: Read complete after 0s [id=4250039221]
data.aws_ssm_parameter.application_pocket_vpc_private_subnets_424C83F8: Reading...
data.aws_caller_identity.application_ecs_service_ecs_codedeploy_current_account_110B92B7: Read complete after 0s [id=410318598490]
data.aws_caller_identity.pocket-vpc_current_identity_8303C1C9: Reading...
data.aws_caller_identity.pocket-vpc_current_identity_8303C1C9: Read complete after 0s [id=410318598490]
data.aws_region.region: Reading...
data.aws_region.region: Read complete after 0s [id=us-east-1]
data.aws_caller_identity.caller: Reading...
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_public_subnets_242E3139: Reading...
data.aws_ssm_parameter.pocket-vpc_private_subnets_75BAFB11: Read complete after 0s [id=/Shared/PrivateSubnets]
data.aws_caller_identity.translation-lambda_pocket-shared-vpc_current_identity_FA43F309: Reading...
data.aws_caller_identity.caller: Read complete after 0s [id=410318598490]
data.aws_ssm_parameter.application_pocket_vpc_public_subnets_282A59F4: Reading...
data.aws_caller_identity.translation-lambda_pocket-shared-vpc_current_identity_FA43F309: Read complete after 0s [id=410318598490]
data.aws_region.translation-lambda_pocket-shared-vpc_current_region_4915DE88: Reading...
data.aws_region.translation-lambda_pocket-shared-vpc_current_region_4915DE88: Read complete after 0s [id=us-east-1]
aws_iam_role.application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_175DB7D3: Refreshing state... [id=ProspectAPI-Dev-ECSCodeDeployRole]
data.aws_ssm_parameter.application_pocket_vpc_private_subnets_424C83F8: Read complete after 0s [id=/Shared/PrivateSubnets]
data.aws_vpc.translation-lambda_pocket-shared-vpc_30AC5256: Reading...
data.aws_vpc.application_pocket_vpc_22D55D83: Reading...
data.aws_ssm_parameter.translation-lambda_pocket-shared-vpc_public_subnets_242E3139: Read complete after 0s [id=/Shared/PublicSubnets]
data.aws_vpc.pocket-vpc_2587E211: Reading...
data.aws_ssm_parameter.application_pocket_vpc_public_subnets_282A59F4: Read complete after 0s [id=/Shared/PublicSubnets]
aws_ecr_lifecycle_policy.application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_CCDF75B7: Refreshing state... [id=prospectapi-dev-app]
pagerduty_service.pagerduty_pagerduty-critical_464EE7CD: Refreshing state... [id=P8OH57E]
pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938: Refreshing state... [id=POL55K4]
aws_iam_role.application_ecs_service_ecs-iam_ecs-execution-role_FB754BAA: Refreshing state... [id=ProspectAPI-Dev-TaskExecutionRole]
data.pagerduty_vendor.pagerduty_sentry_FFB12B7C: Read complete after 0s [id=PKAPG94]
aws_iam_role.application_ecs_service_ecs-iam_ecs-task-role_A72990ED: Refreshing state... [id=ProspectAPI-Dev-TaskRole]
aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_486217BD: Refreshing state... [id=https://sqs.us-east-1.amazonaws.com/410318598490/ProspectAPI-Dev-Sqs-Translation-Queue]
aws_iam_role.translation-lambda_translation-sqs-lambda_execution-role_C2F15DF6: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-ExecutionRole]
aws_iam_role.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-role_9208AEE5: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-CodeDeployRole]
aws_codestarnotifications_notification_rule.application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_CB44EADE: Refreshing state... [id=arn:aws:codestar-notifications:us-east-1:410318598490:notificationrule/494587429c2f067bd47b7b93a56ac1fa94e36fe0]
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-execution-role-policy_015FDEBA: Reading...
data.pagerduty_vendor.pagerduty_cloudwatch_7956692A: Read complete after 1s [id=PZQ6AUS]
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-execution-role-policy_015FDEBA: Read complete after 0s [id=492931643]
aws_route53_record.application_alb_certificate_certificate_record_51B45CF2: Refreshing state... [id=Z07747349K0HE9ZG8VFL__a1e0772270e0a8963c7058ba99a77c66.prospect-api.getpocket.dev._CNAME]
aws_s3_bucket_ownership_controls.translation-lambda_translation-sqs-lambda_code-bucket-ownership-controls_0A8BE3B3: Refreshing state... [id=pocket-prospectapi-dev-sqs-translation]
data.aws_vpc.translation-lambda_pocket-shared-vpc_30AC5256: Read complete after 1s [id=vpc-012481e83ffa5e152]
data.aws_vpc.application_pocket_vpc_22D55D83: Read complete after 1s [id=vpc-012481e83ffa5e152]
aws_iam_role_policy_attachment.application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_1A1D5725: Refreshing state... [id=ProspectAPI-Dev-ECSCodeDeployRole-20240106052911264600000007]
data.aws_vpc.pocket-vpc_2587E211: Read complete after 1s [id=vpc-012481e83ffa5e152]
aws_s3_bucket_public_access_block.translation-lambda_translation-sqs-lambda_code-bucket-public-access-block_68EE0417: Refreshing state... [id=pocket-prospectapi-dev-sqs-translation]
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_lambda_sqs_policy_FC6424CF: Reading...
data.aws_route53_zone.application_base_dns_main_hosted_zone_0141FA96: Read complete after 1s [id=ZCSIDA846KWLN]
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_99A621FF: Refreshing state... [id=ProspectAPI-Dev-TaskExecutionRole-20240106054532934900000001]
aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4: Refreshing state... [id=ProspectAPI-Dev]
aws_iam_policy.translation-lambda_translation-sqs-lambda_execution-policy_E70E40B9: Refreshing state... [id=arn:aws:iam::410318598490:policy/ProspectAPI-Dev-Sqs-Translation-ExecutionRolePolicy]
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_lambda_sqs_policy_FC6424CF: Read complete after 0s [id=1682749772]
aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6: Refreshing state... [id=arn:aws:iam::410318598490:policy/ProspectAPI-Dev-TaskRolePolicy]
aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-execution-role-policy_2D469A77: Refreshing state... [id=arn:aws:iam::410318598490:policy/ProspectAPI-Dev-TaskExecutionRolePolicy]
aws_codedeploy_deployment_group.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deployment-group_064B3F38: Refreshing state... [id=a63ddc0f-5a38-4b36-9688-dacbc2f9cf05]
aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-policy-attachment_88071B62: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-CodeDeployRole-20240106052910436000000006]
data.aws_security_groups.translation-lambda_pocket-shared-vpc_default_security_groups_30393149: Reading...
data.aws_subnets.translation-lambda_pocket-shared-vpc_private_subnet_ids_AC206D4E: Reading...
data.aws_subnets.translation-lambda_pocket-shared-vpc_public_subnet_ids_F62D4FF8: Reading...
data.aws_security_groups.translation-lambda_pocket-shared-vpc_internal_security_groups_4144D685: Reading...
data.aws_security_groups.pocket-vpc_internal_security_groups_147262D8: Reading...
data.aws_subnets.pocket-vpc_private_subnet_ids_73CCA71D: Reading...
data.aws_security_groups.pocket-vpc_default_security_groups_1F0F3778: Reading...
data.aws_subnets.translation-lambda_pocket-shared-vpc_public_subnet_ids_F62D4FF8: Read complete after 0s [id=us-east-1]
data.aws_subnets.translation-lambda_pocket-shared-vpc_private_subnet_ids_AC206D4E: Read complete after 0s [id=us-east-1]
data.aws_subnets.application_pocket_vpc_public_subnet_ids_4577655C: Reading...
data.aws_subnets.application_pocket_vpc_private_subnet_ids_AED9F181: Reading...
data.aws_subnets.pocket-vpc_public_subnet_ids_0B13AF23: Reading...
aws_security_group.application_application_load_balancer_alb_security_group_7B45D070: Refreshing state... [id=sg-06e3341d7c9c86ad0]
data.aws_subnets.pocket-vpc_private_subnet_ids_73CCA71D: Read complete after 0s [id=us-east-1]
aws_alb_target_group.application_ecs_service_green_target_group_ecs_target_group_4E06DCA6: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:targetgroup/PROAPI20240106052909482200000001/f83f684699ca6a2f]
data.aws_subnets.application_pocket_vpc_public_subnet_ids_4577655C: Read complete after 0s [id=us-east-1]
data.aws_security_groups.application_pocket_vpc_default_security_groups_4D3B6986: Reading...
data.aws_security_groups.translation-lambda_pocket-shared-vpc_default_security_groups_30393149: Read complete after 0s [id=us-east-1]
aws_alb_target_group.application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:targetgroup/PROAPI20240106052909644400000005/73dfe4c3e0c3e420]
data.aws_subnets.application_pocket_vpc_private_subnet_ids_AED9F181: Read complete after 0s [id=us-east-1]
data.aws_subnets.pocket-vpc_public_subnet_ids_0B13AF23: Read complete after 0s [id=us-east-1]
data.aws_security_groups.application_pocket_vpc_internal_security_groups_8D057D72: Reading...
aws_route53_record.application_base_dns_subhosted_zone_ns_DFB88A22: Refreshing state... [id=ZCSIDA846KWLN_prospect-api.getpocket.dev_NS]
data.aws_security_groups.application_pocket_vpc_default_security_groups_4D3B6986: Read complete after 0s [id=us-east-1]
data.aws_security_groups.translation-lambda_pocket-shared-vpc_internal_security_groups_4144D685: Read complete after 0s [id=us-east-1]
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5: Refreshing state... [id=PO7EPNU]
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-critical_45BF6D23: Refreshing state... [id=P7YTOY4]
aws_iam_policy.translation-lambda_translation-sqs-lambda_sqs-policy_1811B7AA: Refreshing state... [id=arn:aws:iam::410318598490:policy/ProspectAPI-Dev-Sqs-Translation-LambdaSQSPolicy]
data.aws_security_groups.pocket-vpc_default_security_groups_1F0F3778: Read complete after 0s [id=us-east-1]
aws_s3_bucket_acl.translation-lambda_translation-sqs-lambda_code-bucket-acl_51DA7819: Refreshing state... [id=pocket-prospectapi-dev-sqs-translation,private]
pagerduty_service_integration.pagerduty_pagerduty_sentry_FFB12B7C-non-critical_B7B95197: Refreshing state... [id=PRH2PMH]
data.aws_security_groups.application_pocket_vpc_internal_security_groups_8D057D72: Read complete after 0s [id=us-east-1]
pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-non-critical_EFA67B2C: Refreshing state... [id=PVTQQC7]
local_file.application_ecs_service_appspec_94386B9C: Refreshing state... [id=0c0b2f00b3cdacec50643eb573dac05cf555781c]
data.aws_security_groups.pocket-vpc_internal_security_groups_147262D8: Read complete after 0s [id=us-east-1]
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-custom-attachment_F8DDD355: Refreshing state... [id=ProspectAPI-Dev-TaskRole-20240106054555810400000005]
aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_execution-role-policy-attachment_9BEA8A61: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-ExecutionRole-20240106054555793000000004]
aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_046B7E2E: Refreshing state... [id=ProspectAPI-Dev-TaskExecutionRole-20240106054532944500000002]
aws_acm_certificate_validation.application_alb_certificate_certificate_validation_25DAB195: Refreshing state... [id=2024-01-06 05:29:56.201 +0000 UTC]
aws_lambda_function.translation-lambda_translation-sqs-lambda_B9BDF6BA: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-Function]
aws_security_group.application_ecs_service_ecs_security_group_231C6B1E: Refreshing state... [id=sg-04bc98ecee646d4b1]
aws_alb.application_application_load_balancer_alb_05EA9801: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:loadbalancer/app/PROAPI20240106052913213600000008/0d2c4fbfb1ac67a0]
aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_execution-role-policy-attachment_9054A7C3: Refreshing state... [id=ProspectAPI-Dev-Sqs-Translation-ExecutionRole-2024010605300009160000000a]
aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84: Refreshing state... [id=arn:aws:sns:us-east-1:410318598490:ProspectAPI-Dev-Infrastructure-Alarm-Critical:7785ae8f-3060-4a2a-81e1-577aa0a66f4f]
aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B: Refreshing state... [id=arn:aws:sns:us-east-1:410318598490:ProspectAPI-Dev-Infrastructure-Alarm-Non-Critical:224e98c6-5606-427c-add7-44c0f0c09a4e]
aws_route53_record.application_alb_record_8EA9D3F9: Refreshing state... [id=Z07747349K0HE9ZG8VFL_prospect-api.getpocket.dev_A_1]
aws_alb_listener.application_listener_https_D31CB055: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:listener/app/PROAPI20240106052913213600000008/0d2c4fbfb1ac67a0/1b1a3d7eaec7bddf]
aws_alb_listener.application_listener_http_D74EC0ED: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:listener/app/PROAPI20240106052913213600000008/0d2c4fbfb1ac67a0/8034a0109f8a2a3e]
aws_cloudwatch_metric_alarm.application_alarm-httptarget5xxerrorrate_F94D87C0: Refreshing state... [id=ProspectAPI-Dev-Alarm-HTTPTarget5xxErrorRate]
aws_cloudwatch_log_group.translation-lambda_translation-sqs-lambda_log-group_CAF5915B: Refreshing state... [id=/aws/lambda/ProspectAPI-Dev-Sqs-Translation-Function]
aws_lambda_alias.translation-lambda_translation-sqs-lambda_alias_10FF84BB: Refreshing state... [id=arn:aws:lambda:us-east-1:410318598490:function:ProspectAPI-Dev-Sqs-Translation-Function:DEPLOYED]
aws_lambda_event_source_mapping.translation-lambda_translation-sqs-lambda_lambda_event_source_mapping_49D092A6: Refreshing state... [id=b874d1a9-9d39-4b9c-bf38-db409e470b53]
aws_alb_listener_rule.application_ecs_service_listener_rule_903F815F: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:410318598490:listener-rule/app/PROAPI20240106052913213600000008/0d2c4fbfb1ac67a0/1b1a3d7eaec7bddf/dd49b8d8bf6e8dfe]
aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4: Refreshing state... [id=arn:aws:ecs:us-east-1:410318598490:service/ProspectAPI-Dev/ProspectAPI-Dev]
aws_appautoscaling_target.application_autoscaling_autoscaling_target_42BF5C99: Refreshing state... [id=service/ProspectAPI-Dev/ProspectAPI-Dev]
aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED: Refreshing state... [id=ProspectAPI-Dev]
aws_codedeploy_deployment_group.application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_48384247: Refreshing state... [id=30e83bf4-f2af-4aba-b187-4f7142a35559]
aws_appautoscaling_policy.application_autoscaling_scale_in_policy_BF273511: Refreshing state... [id=ProspectAPI-Dev-ScaleInPolicy]
aws_appautoscaling_policy.application_autoscaling_scale_out_policy_D03900A2: Refreshing state... [id=ProspectAPI-Dev-ScaleOutPolicy]
null_resource.application_ecs_service_update-task-definition_D19A511D: Refreshing state... [id=1467228676312391832]
aws_cloudwatch_metric_alarm.application_autoscaling_scale_in_alarm_850BE3A1: Refreshing state... [id=ProspectAPI-Dev Service Low CPU]
aws_cloudwatch_metric_alarm.application_autoscaling_scale_out_alarm_E40FCBA0: Refreshing state... [id=ProspectAPI-Dev Service High CPU]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
 <= read (data resources)

Terraform will perform the following actions:

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

      + statement {
          + actions   = [
              + "dynamodb:BatchGet*",
              + "dynamodb:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects",
              + "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects/*",
            ]
        }
      + statement {
          + actions   = [
              + "s3:*",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:s3:::pocket-prospectapi-dev-images",
              + "arn:aws:s3:::pocket-prospectapi-dev-images/*",
            ]
        }
      + statement {
          + actions   = [
              + "events:PutEvents",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:events:us-east-1:410318598490:event-bus/PocketEventBridge-Dev-Shared-Event-Bus",
            ]
        }
    }

  # data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E" {
      + id      = (known after apply)
      + json    = (known after apply)
      + version = "2012-10-17"

      + statement {
          + actions   = [
              + "logs:CreateLogGroup",
              + "logs:CreateLogStream",
              + "logs:DescribeLogStreams",
              + "logs:PutLogEvents",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:logs:*:*:*",
            ]
        }
      + statement {
          + actions   = [
              + "dynamodb:BatchWriteItem",
              + "dynamodb:DescribeTable",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects",
              + "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects/*",
            ]
        }
      + statement {
          + actions   = [
              + "ec2:AttachNetworkInterface",
              + "ec2:CreateNetworkInterface",
              + "ec2:DeleteNetworkInterface",
              + "ec2:DescribeInstances",
              + "ec2:DescribeNetworkInterfaces",
            ]
          + effect    = "Allow"
          + resources = [
              + "*",
            ]
        }
    }

  # aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E will be updated in-place
  ~ resource "aws_dynamodb_table" "dynamodb_prospects_dynamodb_table_9854E41E" {
        id                          = "PROAPI-Dev-Prospects"
        name                        = "PROAPI-Dev-Prospects"
        tags                        = {
            "environment" = "Dev"
            "service"     = "ProspectAPI"
        }
        # (9 unchanged attributes hidden)

      - global_secondary_index {
          - hash_key           = "scheduledSurfaceGuid" -> null
          - name               = "scheduledSurfaceGuid-prospectType" -> null
          - non_key_attributes = [] -> null
          - projection_type    = "ALL" -> null
          - range_key          = "prospectType" -> null
          - read_capacity      = 0 -> null
          - write_capacity     = 0 -> null
        }
      + global_secondary_index {
          + hash_key           = "scheduledSurfaceGuid"
          + name               = "scheduledSurfaceGuid-prospectType"
          + non_key_attributes = []
          + projection_type    = "ALL"
          + range_key          = "prospectType"
          + read_capacity      = 5
          + write_capacity     = 5
        }

        # (5 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::410318598490:policy/ProspectAPI-Dev-TaskRolePolicy"
        name      = "ProspectAPI-Dev-TaskRolePolicy"
      ~ policy    = jsonencode(
            {
              - Statement = [
                  - {
                      - Action   = [
                          - "dynamodb:UpdateItem",
                          - "dynamodb:Scan",
                          - "dynamodb:Query",
                          - "dynamodb:Get*",
                          - "dynamodb:DescribeTable",
                          - "dynamodb:BatchGet*",
                        ]
                      - Effect   = "Allow"
                      - Resource = [
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects/*",
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects",
                        ]
                    },
                  - {
                      - Action   = "s3:*"
                      - Effect   = "Allow"
                      - Resource = [
                          - "arn:aws:s3:::pocket-prospectapi-dev-images/*",
                          - "arn:aws:s3:::pocket-prospectapi-dev-images",
                        ]
                    },
                  - {
                      - Action   = "events:PutEvents"
                      - Effect   = "Allow"
                      - Resource = "arn:aws:events:us-east-1:410318598490:event-bus/PocketEventBridge-Dev-Shared-Event-Bus"
                    },
                ]
              - Version   = "2012-10-17"
            }
        ) -> (known after apply)
        tags      = {
            "environment" = "Dev"
            "service"     = "ProspectAPI"
        }
        # (4 unchanged attributes hidden)
    }

  # aws_iam_policy.translation-lambda_translation-sqs-lambda_execution-policy_E70E40B9 will be updated in-place
  ~ resource "aws_iam_policy" "translation-lambda_translation-sqs-lambda_execution-policy_E70E40B9" {
        id        = "arn:aws:iam::410318598490:policy/ProspectAPI-Dev-Sqs-Translation-ExecutionRolePolicy"
        name      = "ProspectAPI-Dev-Sqs-Translation-ExecutionRolePolicy"
      ~ policy    = jsonencode(
            {
              - Statement = [
                  - {
                      - Action   = [
                          - "logs:PutLogEvents",
                          - "logs:DescribeLogStreams",
                          - "logs:CreateLogStream",
                          - "logs:CreateLogGroup",
                        ]
                      - Effect   = "Allow"
                      - Resource = "arn:aws:logs:*:*:*"
                    },
                  - {
                      - Action   = [
                          - "dynamodb:UpdateItem",
                          - "dynamodb:Query",
                          - "dynamodb:PutItem",
                          - "dynamodb:DescribeTable",
                          - "dynamodb:BatchWriteItem",
                        ]
                      - Effect   = "Allow"
                      - Resource = [
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects/*",
                          - "arn:aws:dynamodb:us-east-1:410318598490:table/PROAPI-Dev-Prospects",
                        ]
                    },
                  - {
                      - Action   = [
                          - "ec2:DescribeNetworkInterfaces",
                          - "ec2:DescribeInstances",
                          - "ec2:DeleteNetworkInterface",
                          - "ec2:CreateNetworkInterface",
                          - "ec2:AttachNetworkInterface",
                        ]
                      - Effect   = "Allow"
                      - Resource = "*"
                    },
                ]
              - Version   = "2012-10-17"
            }
        ) -> (known after apply)
        tags      = {
            "environment" = "Dev"
            "service"     = "ProspectAPI"
        }
        # (4 unchanged attributes hidden)
    }

  # aws_lambda_function.translation-lambda_translation-sqs-lambda_B9BDF6BA will be updated in-place
  ~ resource "aws_lambda_function" "translation-lambda_translation-sqs-lambda_B9BDF6BA" {
        id                             = "ProspectAPI-Dev-Sqs-Translation-Function"
      ~ qualified_arn                  = "arn:aws:lambda:us-east-1:410318598490:function:ProspectAPI-Dev-Sqs-Translation-Function:315" -> (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:ProspectAPI-Dev-Sqs-Translation-Function:315/invocations" -> (known after apply)
        tags                           = {
            "environment" = "Dev"
            "service"     = "ProspectAPI"
        }
      ~ version                        = "315" -> (known after apply)
        # (19 unchanged attributes hidden)

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

        # (3 unchanged blocks 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 = 4026
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:410318598490:task-definition/ProspectAPI-Dev:167"
                            }
                          + 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, 4 to change, 0 to destroy.
aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E: Modifying... [id=PROAPI-Dev-Prospects]
aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E: Modifications complete after 0s [id=PROAPI-Dev-Prospects]
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Reading...
data.aws_iam_policy_document.application_ecs_service_ecs-iam_data-ecs-task-role-policy_090CC3AD: Read complete after 0s [id=2997876322]
local_file.application_ecs_service_appspec_94386B9C: Creating...
data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E: Read complete after 0s [id=3208558407]
local_file.application_ecs_service_appspec_94386B9C: Creation complete after 0s [id=0c0b2f00b3cdacec50643eb573dac05cf555781c]
aws_lambda_function.translation-lambda_translation-sqs-lambda_B9BDF6BA: Modifying... [id=ProspectAPI-Dev-Sqs-Translation-Function]
aws_lambda_function.translation-lambda_translation-sqs-lambda_B9BDF6BA: Modifications complete after 7s [id=ProspectAPI-Dev-Sqs-Translation-Function]
╷
│ Warning: Deprecated attribute
│ 
│   on cdk.tf.json line 2699, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:2699:         "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 providerdocumentation for details.
│ 
│ (and 3 more similar warnings elsewhere)
╵

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

@pocket-ci
Copy link

pocket-ci commented Jan 10, 2024

Plan Result (prospect-api-cdk)

CI link

⚠️ Resource Deletion will happen

This plan contains resource delete operation. Please check the plan result very carefully!

Plan: 11 to add, 3 to change, 14 to destroy.
  • Create
    • aws_s3_bucket_acl.translation-lambda_translation-sqs-lambda_code-bucket-acl_51DA7819
    • aws_s3_bucket_ownership_controls.translation-lambda_translation-sqs-lambda_code-bucket-ownership-controls_0A8BE3B3
    • local_file.application_ecs_service_appspec_94386B9C
    • null_resource.application_ecs_service_update-task-definition_D19A511D
    • 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
  • Update
    • aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E
    • aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6
    • aws_iam_policy.translation-lambda_translation-sqs-lambda_execution-policy_E70E40B9
  • Delete
    • aws_codepipeline.prospectapi_codepipeline_codepipeline_8242EAFB
    • aws_iam_role.prospectapi_application_autoscaling_autoscalingrole_A251A39E
    • aws_iam_role.prospectapi_codepipeline_codepipelinerole_E366505F
    • aws_iam_role_policy.prospectapi_application_autoscaling_autoscalingrolepolicy_78CE390B
    • aws_iam_role_policy.prospectapi_codepipeline_codepipelinerolepolicy_0B9C1BEC
    • aws_s3_bucket.prospectapi_codepipeline_codepipelinebucket_7654FFD5
    • null_resource.prospectapi_application_ecsservice_createtaskdefinitionfile_1392450E
    • pagerduty_service_integration.prospectapi_pagerduty_prospectapipagerdutycloudwatch4EC9B176critical_674FEDD4
    • pagerduty_service_integration.prospectapi_pagerduty_prospectapipagerdutycloudwatch4EC9B176noncritical_3B68AC31
    • pagerduty_service_integration.prospectapi_pagerduty_prospectapipagerdutysentryE5A3E8BCcritical_0DEFDA33
    • pagerduty_service_integration.prospectapi_pagerduty_prospectapipagerdutysentryE5A3E8BCnoncritical_4006043B
  • Replace
    • aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED
    • aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84
    • aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B
  • Move
    • aws_acm_certificate.prospectapi_application_albcertificate_8A1CD2EB => aws_acm_certificate.application_alb_certificate_93966247
    • aws_acm_certificate_validation.prospectapi_application_albcertificate_certificatevalidation_39755F00 => aws_acm_certificate_validation.application_alb_certificate_certificate_validation_25DAB195
    • aws_alb.prospectapi_application_applicationloadbalancer_alb_8CFB91C0 => aws_alb.application_application_load_balancer_alb_05EA9801
    • aws_alb_listener.prospectapi_application_listenerhttp_376C19FE => aws_alb_listener.application_listener_http_D74EC0ED
    • aws_alb_listener.prospectapi_application_listenerhttps_5F097234 => aws_alb_listener.application_listener_https_D31CB055
    • aws_alb_listener_rule.prospectapi_application_ecsservice_listenerrule_5A09FC37 => aws_alb_listener_rule.application_ecs_service_listener_rule_903F815F
    • aws_alb_target_group.prospectapi_application_ecsservice_bluetargetgroup_ecstargetgroup_575B9071 => aws_alb_target_group.application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B
    • aws_alb_target_group.prospectapi_application_ecsservice_greentargetgroup_ecstargetgroup_B39F1FD1 => aws_alb_target_group.application_ecs_service_green_target_group_ecs_target_group_4E06DCA6
    • aws_appautoscaling_policy.prospectapi_application_autoscaling_scaleinpolicy_EE0A25A3 => aws_appautoscaling_policy.application_autoscaling_scale_in_policy_BF273511
    • aws_appautoscaling_policy.prospectapi_application_autoscaling_scaleoutpolicy_48356213 => aws_appautoscaling_policy.application_autoscaling_scale_out_policy_D03900A2
    • aws_appautoscaling_target.prospectapi_application_autoscaling_autoscalingtarget_B51D60A5 => aws_appautoscaling_target.application_autoscaling_autoscaling_target_42BF5C99
    • aws_cloudwatch_dashboard.prospectapi_application_cloudwatchdashboard_2B33E854 => aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED
    • aws_cloudwatch_log_group.prospectapi_apploggroup_5C65478D => aws_cloudwatch_log_group.app-log-group
    • aws_cloudwatch_log_group.prospectapi_translationlambda_translationsqslambda_loggroup_F3B473EB => aws_cloudwatch_log_group.translation-lambda_translation-sqs-lambda_log-group_CAF5915B
    • aws_cloudwatch_metric_alarm.prospectapi_application_alarmhttptarget5xxerrorrate_8B9858BE => aws_cloudwatch_metric_alarm.application_alarm-httptarget5xxerrorrate_F94D87C0
    • aws_cloudwatch_metric_alarm.prospectapi_application_autoscaling_scaleinalarm_300520F1 => aws_cloudwatch_metric_alarm.application_autoscaling_scale_in_alarm_850BE3A1
    • aws_cloudwatch_metric_alarm.prospectapi_application_autoscaling_scaleoutalarm_A847F22C => aws_cloudwatch_metric_alarm.application_autoscaling_scale_out_alarm_E40FCBA0
    • aws_codedeploy_app.prospectapi_application_ecsservice_ecscodedeploy_ecscodedeploy_92D477CD => aws_codedeploy_app.application_ecs_service_ecs_codedeploy_ecs_code_deploy_C2F7CBCF
    • aws_codedeploy_app.prospectapi_translationlambda_translationsqslambda_lambdacodedeploy_codedeployapp_AC299A48 => aws_codedeploy_app.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-app_E422EADB
    • aws_codedeploy_deployment_group.prospectapi_application_ecsservice_ecscodedeploy_ecscodedeploydeploymentgroup_1DBBDC5D => aws_codedeploy_deployment_group.application_ecs_service_ecs_codedeploy_ecs_codedeploy_deployment_group_48384247
    • aws_codedeploy_deployment_group.prospectapi_translationlambda_translationsqslambda_lambdacodedeploy_codedeploymentgroup_8AE76E8A => aws_codedeploy_deployment_group.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deployment-group_064B3F38
    • aws_codestarnotifications_notification_rule.prospectapi_application_ecsservice_ecscodedeploy_ecscodedeploynotifications_F234CD3D => aws_codestarnotifications_notification_rule.application_ecs_service_ecs_codedeploy_ecs_codedeploy_notifications_CB44EADE
    • aws_dynamodb_table.prospectapi_dynamodb_prospects_dynamodbtable_972079A4 => aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E
    • aws_ecr_lifecycle_policy.prospectapi_application_ecsservice_ecrapp_ecrrepolifecyclepolicy_C51DE05F => aws_ecr_lifecycle_policy.application_ecs_service_ecr-app_ecr-repo-lifecyclepolicy_CCDF75B7
    • aws_ecr_repository.prospectapi_application_ecsservice_ecrapp_ecrrepo_4669FB48 => aws_ecr_repository.application_ecs_service_ecr-app_ecr-repo_ABFE17F0
    • aws_ecs_cluster.prospectapi_application_ecscluster_2C38CC82 => aws_ecs_cluster.application_ecs_cluster_4DC6EFB3
    • aws_ecs_service.prospectapi_application_ecsservice_ecsservice_AFE18F72 => aws_ecs_service.application_ecs_service_ecs-service_A8BAB5F4
    • aws_ecs_task_definition.prospectapi_application_ecsservice_ecstask_6D13CFCE => aws_ecs_task_definition.application_ecs_service_ecs-task_461CC9D4
    • aws_iam_policy.prospectapi_application_ecsservice_ecsiam_ecstaskexecutionrolepolicy_2E1EEEBA => aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-execution-role-policy_2D469A77
    • aws_iam_policy.prospectapi_application_ecsservice_ecsiam_ecstaskrolepolicy_1267525F => aws_iam_policy.application_ecs_service_ecs-iam_ecs-task-role-policy_6FC89FB6
    • aws_iam_policy.prospectapi_translationlambda_translationsqslambda_executionpolicy_B760F4FE => aws_iam_policy.translation-lambda_translation-sqs-lambda_execution-policy_E70E40B9
    • aws_iam_policy.prospectapi_translationlambda_translationsqslambda_sqspolicy_049BC3BB => aws_iam_policy.translation-lambda_translation-sqs-lambda_sqs-policy_1811B7AA
    • aws_iam_role.prospectapi_application_ecsservice_ecsiam_ecsexecutionrole_69F3F332 => aws_iam_role.application_ecs_service_ecs-iam_ecs-execution-role_FB754BAA
    • aws_iam_role.prospectapi_application_ecsservice_ecsiam_ecstaskrole_B254993B => aws_iam_role.application_ecs_service_ecs-iam_ecs-task-role_A72990ED
    • aws_iam_role.prospectapi_application_ecsservice_ecscodedeploy_ecscodedeployrole_F0543A5D => aws_iam_role.application_ecs_service_ecs_codedeploy_ecs_code_deploy_role_175DB7D3
    • aws_iam_role.prospectapi_translationlambda_translationsqslambda_executionrole_F6E470F2 => aws_iam_role.translation-lambda_translation-sqs-lambda_execution-role_C2F15DF6
    • aws_iam_role.prospectapi_translationlambda_translationsqslambda_lambdacodedeploy_codedeployrole_B0D035F6 => aws_iam_role.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-role_9208AEE5
    • aws_iam_role_policy_attachment.prospectapi_application_ecsservice_ecsiam_ecstaskcustomattachment_035449D8 => aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-custom-attachment_F8DDD355
    • aws_iam_role_policy_attachment.prospectapi_application_ecsservice_ecsiam_ecstaskexecutioncustomattachment_8A28C8F6 => aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-custom-attachment_046B7E2E
    • aws_iam_role_policy_attachment.prospectapi_application_ecsservice_ecsiam_ecstaskexecutiondefaultattachment_628ED58A => aws_iam_role_policy_attachment.application_ecs_service_ecs-iam_ecs-task-execution-default-attachment_99A621FF
    • aws_iam_role_policy_attachment.prospectapi_application_ecsservice_ecscodedeploy_ecscodedeployroleattachment_A11A5C8B => aws_iam_role_policy_attachment.application_ecs_service_ecs_codedeploy_ecs_codedeploy_role_attachment_1A1D5725
    • aws_iam_role_policy_attachment.prospectapi_translationlambda_translationsqslambda_executionrolepolicyattachment_DA1F2EDD => aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_execution-role-policy-attachment_9054A7C3
    • aws_iam_role_policy_attachment.prospectapi_translationlambda_translationsqslambda_executionrolepolicyattachment_3B817186 => aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_execution-role-policy-attachment_9BEA8A61
    • aws_iam_role_policy_attachment.prospectapi_translationlambda_translationsqslambda_lambdacodedeploy_codedeploypolicyattachment_6BD02606 => aws_iam_role_policy_attachment.translation-lambda_translation-sqs-lambda_lambda-code-deploy_code-deploy-policy-attachment_88071B62
    • aws_lambda_alias.prospectapi_translationlambda_translationsqslambda_alias_DA74D60A => aws_lambda_alias.translation-lambda_translation-sqs-lambda_alias_10FF84BB
    • aws_lambda_event_source_mapping.prospectapi_translationlambda_translationsqslambda_lambdaeventsourcemapping_6E44ACF5 => aws_lambda_event_source_mapping.translation-lambda_translation-sqs-lambda_lambda_event_source_mapping_49D092A6
    • aws_lambda_function.prospectapi_translationlambda_translationsqslambda_84F7EFC2 => aws_lambda_function.translation-lambda_translation-sqs-lambda_B9BDF6BA
    • aws_route53_record.prospectapi_application_albcertificate_certificaterecord_BD6DF153 => aws_route53_record.application_alb_certificate_certificate_record_51B45CF2
    • aws_route53_record.prospectapi_application_albrecord_240F4295 => aws_route53_record.application_alb_record_8EA9D3F9
    • aws_route53_record.prospectapi_application_basedns_subhostedzonens_26097F14 => aws_route53_record.application_base_dns_subhosted_zone_ns_DFB88A22
    • aws_route53_zone.prospectapi_application_basedns_subhostedzone_1F63DEE7 => aws_route53_zone.application_base_dns_subhosted_zone_77521D1C
    • aws_s3_bucket.prospectapi_imageuploads_8F8E4237 => aws_s3_bucket.image-uploads
    • aws_s3_bucket.prospectapi_translationlambda_translationsqslambda_codebucket_DA2B78C4 => aws_s3_bucket.translation-lambda_translation-sqs-lambda_code-bucket_8041EB81
    • aws_s3_bucket_public_access_block.prospectapi_translationlambda_translationsqslambda_codebucketpublicaccessblock_54952A58 => aws_s3_bucket_public_access_block.translation-lambda_translation-sqs-lambda_code-bucket-public-access-block_68EE0417
    • aws_security_group.prospectapi_application_applicationloadbalancer_albsecuritygroup_4B1874E4 => aws_security_group.application_application_load_balancer_alb_security_group_7B45D070
    • aws_security_group.prospectapi_application_ecsservice_ecssecuritygroup_D05D5BB0 => aws_security_group.application_ecs_service_ecs_security_group_231C6B1E
    • aws_sns_topic.prospectapi_pagerduty_alarmcriticaltopic_62F70C43 => aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
    • aws_sns_topic.prospectapi_pagerduty_alarmnoncriticaltopic_CDD6DCFB => aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
    • aws_sns_topic_subscription.prospectapi_pagerduty_alarmcriticalsubscription_B9B6BD84 => aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84
    • aws_sns_topic_subscription.prospectapi_pagerduty_alarmnoncriticalsubscription_0DD66169 => aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B
    • aws_sqs_queue.prospectapi_translationlambda_translationsqslambda_lambdasqsqueue_1D1B525B => aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_486217BD
    • aws_sqs_queue.prospectapi_translationlambda_translationsqslambda_lambdasqsqueue_redrivesqsqueue_7A12B837 => aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_redrive_sqs_queue_25D64172
    • pagerduty_service.prospectapi_pagerduty_pagerdutycritical_01983BAA => pagerduty_service.pagerduty_pagerduty-critical_464EE7CD
    • pagerduty_service.prospectapi_pagerduty_pagerdutynoncritical_AE41ED57 => pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938
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:DescribeTable",
              + "dynamodb:Get*",
              + "dynamodb:Query",
              + "dynamodb:Scan",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:996905175585:table/PROAPI-Prod-Prospects",
              + "arn:aws:dynamodb:us-east-1:996905175585:table/PROAPI-Prod-Prospects/*",
            ]
        }
      + statement {
          + actions   = [
              + "s3:*",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:s3:::pocket-prospectapi-prod-images",
              + "arn:aws:s3:::pocket-prospectapi-prod-images/*",
            ]
        }
      + statement {
          + actions   = [
              + "events:PutEvents",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:events:us-east-1:996905175585:event-bus/PocketEventBridge-Prod-Shared-Event-Bus",
            ]
        }
    }

  # data.aws_iam_policy_document.translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "aws_iam_policy_document" "translation-lambda_translation-sqs-lambda_execution-policy-document_94EBBD6E" {
      + id      = (known after apply)
      + json    = (known after apply)
      + version = "2012-10-17"

      + statement {
          + actions   = [
              + "logs:CreateLogGroup",
              + "logs:CreateLogStream",
              + "logs:DescribeLogStreams",
              + "logs:PutLogEvents",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:logs:*:*:*",
            ]
        }
      + statement {
          + actions   = [
              + "dynamodb:BatchWriteItem",
              + "dynamodb:DescribeTable",
              + "dynamodb:PutItem",
              + "dynamodb:Query",
              + "dynamodb:UpdateItem",
            ]
          + effect    = "Allow"
          + resources = [
              + "arn:aws:dynamodb:us-east-1:996905175585:table/PROAPI-Prod-Prospects",
              + "arn:aws:dynamodb:us-east-1:996905175585:table/PROAPI-Prod-Prospects/*",
            ]
        }
      + statement {
          + actions   = [
              + "ec2:AttachNetworkInterface",
              + "ec2:CreateNetworkInterface",
              + "ec2:DeleteNetworkInterface",
              + "ec2:DescribeInstances",
              + "ec2:DescribeNetworkInterfaces",
            ]
          + effect    = "Allow"
          + resources = [
              + "*",
            ]
        }
    }

  # aws_acm_certificate.prospectapi_application_albcertificate_8A1CD2EB has moved to aws_acm_certificate.application_alb_certificate_93966247
    resource "aws_acm_certificate" "application_alb_certificate_93966247" {
        id                        = "arn:aws:acm:us-east-1:996905175585:certificate/aaca1e96-52cf-4265-bba6-14934b83575a"
        tags                      = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (15 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # aws_acm_certificate_validation.prospectapi_application_albcertificate_certificatevalidation_39755F00 has moved to aws_acm_certificate_validation.application_alb_certificate_certificate_validation_25DAB195
    resource "aws_acm_certificate_validation" "application_alb_certificate_certificate_validation_25DAB195" {
        id                      = "2021-09-23 16:19:09 +0000 UTC"
        # (2 unchanged attributes hidden)
    }

  # aws_alb.prospectapi_application_applicationloadbalancer_alb_8CFB91C0 has moved to aws_alb.application_application_load_balancer_alb_05EA9801
    resource "aws_alb" "application_application_load_balancer_alb_05EA9801" {
        id                                          = "arn:aws:elasticloadbalancing:us-east-1:996905175585:loadbalancer/app/PROAPI2021092316174802200000000c/d452bda5087b0641"
        name                                        = "PROAPI2021092316174802200000000c"
        tags                                        = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (23 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

  # aws_alb_listener.prospectapi_application_listenerhttp_376C19FE has moved to aws_alb_listener.application_listener_http_D74EC0ED
    resource "aws_alb_listener" "application_listener_http_D74EC0ED" {
        id                = "arn:aws:elasticloadbalancing:us-east-1:996905175585:listener/app/PROAPI2021092316174802200000000c/d452bda5087b0641/a5230e6a1cae2585"
        tags              = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (5 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # aws_alb_listener.prospectapi_application_listenerhttps_5F097234 has moved to aws_alb_listener.application_listener_https_D31CB055
    resource "aws_alb_listener" "application_listener_https_D31CB055" {
        id                = "arn:aws:elasticloadbalancing:us-east-1:996905175585:listener/app/PROAPI2021092316174802200000000c/d452bda5087b0641/9b74d383f847df30"
        tags              = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (7 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # aws_alb_listener_rule.prospectapi_application_ecsservice_listenerrule_5A09FC37 has moved to aws_alb_listener_rule.application_ecs_service_listener_rule_903F815F
    resource "aws_alb_listener_rule" "application_ecs_service_listener_rule_903F815F" {
        id           = "arn:aws:elasticloadbalancing:us-east-1:996905175585:listener-rule/app/PROAPI2021092316174802200000000c/d452bda5087b0641/9b74d383f847df30/8a9e19fa9f0d9df0"
        tags         = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (4 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # aws_alb_target_group.prospectapi_application_ecsservice_bluetargetgroup_ecstargetgroup_575B9071 has moved to aws_alb_target_group.application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B
    resource "aws_alb_target_group" "application_ecs_service_blue_target_group_ecs_target_group_4A9BF49B" {
        id                                 = "arn:aws:elasticloadbalancing:us-east-1:996905175585:targetgroup/PROAPI20210923161746787700000007/e8c6e309743debcb"
        name                               = "PROAPI20210923161746787700000007"
        tags                               = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
            "type"        = "blue"
        }
        # (16 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_alb_target_group.prospectapi_application_ecsservice_greentargetgroup_ecstargetgroup_B39F1FD1 has moved to aws_alb_target_group.application_ecs_service_green_target_group_ecs_target_group_4E06DCA6
    resource "aws_alb_target_group" "application_ecs_service_green_target_group_ecs_target_group_4E06DCA6" {
        id                                 = "arn:aws:elasticloadbalancing:us-east-1:996905175585:targetgroup/PROAPI20210923161746487200000005/bef8c96d0b9c54f8"
        name                               = "PROAPI20210923161746487200000005"
        tags                               = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
            "type"        = "green"
        }
        # (16 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # aws_appautoscaling_policy.prospectapi_application_autoscaling_scaleinpolicy_EE0A25A3 has moved to aws_appautoscaling_policy.application_autoscaling_scale_in_policy_BF273511
    resource "aws_appautoscaling_policy" "application_autoscaling_scale_in_policy_BF273511" {
        id                 = "ProspectAPI-Prod-ScaleInPolicy"
        name               = "ProspectAPI-Prod-ScaleInPolicy"
        # (6 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # aws_appautoscaling_policy.prospectapi_application_autoscaling_scaleoutpolicy_48356213 has moved to aws_appautoscaling_policy.application_autoscaling_scale_out_policy_D03900A2
    resource "aws_appautoscaling_policy" "application_autoscaling_scale_out_policy_D03900A2" {
        id                 = "ProspectAPI-Prod-ScaleOutPolicy"
        name               = "ProspectAPI-Prod-ScaleOutPolicy"
        # (6 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # aws_appautoscaling_target.prospectapi_application_autoscaling_autoscalingtarget_B51D60A5 has moved to aws_appautoscaling_target.application_autoscaling_autoscaling_target_42BF5C99
    resource "aws_appautoscaling_target" "application_autoscaling_autoscaling_target_42BF5C99" {
        id                 = "service/ProspectAPI-Prod/ProspectAPI-Prod"
        tags               = {}
        # (8 unchanged attributes hidden)
    }

  # aws_cloudwatch_dashboard.application_cloudwatch-dashboard_1F3DC0ED must be replaced
  # (moved from aws_cloudwatch_dashboard.prospectapi_application_cloudwatchdashboard_2B33E854)
-/+ resource "aws_cloudwatch_dashboard" "application_cloudwatch-dashboard_1F3DC0ED" {
      ~ dashboard_arn  = "arn:aws:cloudwatch::996905175585:dashboard/ProspectAPI-Prod-ALBDashboard" -> (known after apply)
      ~ dashboard_body = jsonencode( # whitespace changes
            {
                widgets = [
                    {
                        height     = 6
                        properties = {
                            metrics = [
                                [
                                    "AWS/ApplicationELB",
                                    "HTTPCode_Target_4XX_Count",
                                    "LoadBalancer",
                                    "app/PROAPI2021092316174802200000000c/d452bda5087b0641",
                                    {
                                        color = "#ff7f0e"
                                        yAxis = "left"
                                    },
                                ],
                                [
                                    ".",
                                    "RequestCount",
                                    ".",
                                    ".",
                                    {
                                        color = "#1f77b4"
                                        yAxis = "right"
                                    },
                                ],
                                [
                                    ".",
                                    "HTTPCode_Target_5XX_Count",
                                    ".",
                                    ".",
                                    {
                                        color = "#d62728"
                                    },
                                ],
                                [
                                    ".",
                                    "HTTPCode_Target_2XX_Count",
                                    ".",
                                    ".",
                                    {
                                        color = "#2ca02c"
                                        yAxis = "right"
                                    },
                                ],
                            ]
                            period  = 60
                            region  = "us-east-1"
                            stacked = false
                            stat    = "Sum"
                            title   = "Target Requests"
                            view    = "timeSeries"
                        }
                        type       = "metric"
                        width      = 12
                        x          = 0
                        y          = 0
                    },
                    {
                        height     = 6
                        properties = {
                            metrics = [
                                [
                                    "AWS/ApplicationELB",
                                    "HTTPCode_ELB_4XX_Count",
                                    "LoadBalancer",
                                    "app/PROAPI2021092316174802200000000c/d452bda5087b0641",
                                    {
                                        color = "#ff7f0e"
                                        yAxis = "left"
                                    },
                                ],
                                [
                                    ".",
                                    "RequestCount",
                                    ".",
                                    ".",
                                    {
                                        color = "#1f77b4"
                                        yAxis = "right"
                                    },
                                ],
                                [
                                    ".",
                                    "HTTPCode_ELB_5XX_Count",
                                    ".",
                                    ".",
                                    {
                                        color = "#d62728"
                                    },
                                ],
                            ]
                            period  = 60
                            region  = "us-east-1"
                            stacked = false
                            stat    = "Sum"
                            title   = "ALB Requests"
                            view    = "timeSeries"
                        }
                        type       = "metric"
                        width      = 12
                        x          = 12
                        y          = 0
                    },
                    {
                        height     = 6
                        properties = {
                            metrics = [
                                [
                                    "AWS/ApplicationELB",
                                    "TargetResponseTime",
                                    "LoadBalancer",
                                    "app/PROAPI2021092316174802200000000c/d452bda5087b0641",
                                    {
                                        color = "#aec7e8"
                                        label = "Average"
                                    },
                                ],
                                [
                                    "...",
                                    {
                                        color = "#ffbb78"
                                        label = "p95"
                                        stat  = "p95"
                                    },
                                ],
                                [
                                    "...",
                                    {
                                        color = "#98df8a"
                                        label = "p99"
                                        stat  = "p99"
                                    },
                                ],
                            ]
                            period  = 60
                            region  = "us-east-1"
                            stacked = false
                            stat    = "Average"
                            view    = "timeSeries"
                        }
                        type       = "metric"
                        width      = 12
                        x          = 12
                        y          = 6
                    },
                    {
                        height     = 6
                        properties = {
                            annotations = {
                                horizontal = [
                                    {
                                        color = "#e377c2"
                                        label = "CPU scale out"
                                        value = 45
                                    },
                                    {
                                        color = "#c5b0d5"
                                        label = "CPU scale in"
                                        value = 30
                                    },
                                ]
                            }
                            metrics     = [
                                [
                                    "ECS/ContainerInsights",
                                    "RunningTaskCount",
                                    "ServiceName",
                                    "ProspectAPI-Prod",
                                    "ClusterName",
                                    "ProspectAPI-Prod",
                                    {
                                        color = "#c49c94"
                                        yAxis = "right"
                                    },
                                ],
                                [
                                    "AWS/ECS",
                                    "CPUUtilization",
                                    ".",
                                    ".",
                                    ".",
                                    ".",
                                    {
                                        color = "#f7b6d2"
                                    },
                                ],
                                [
                                    ".",
                                    "MemoryUtilization",
                                    ".",
                                    ".",
                                    ".",
                                    ".",
                                    {
                                        color = "#c7c7c7"
                                    },
                                ],
                            ]
                            period      = 60
                            region      = "us-east-1"
                            stacked     = false
                            stat        = "Average"
                            title       = "Service Load"
                            view        = "timeSeries"
                        }
                        type       = "metric"
                        width      = 12
                        x          = 0
                        y          = 6
                    },
                ]
            }
        )
      ~ dashboard_name = "ProspectAPI-Prod-ALBDashboard" -> "ProspectAPI-Prod" # forces replacement
      ~ id             = "ProspectAPI-Prod-ALBDashboard" -> (known after apply)
    }

  # aws_cloudwatch_log_group.prospectapi_apploggroup_5C65478D has moved to aws_cloudwatch_log_group.app-log-group
    resource "aws_cloudwatch_log_group" "app-log-group" {
        id                = "/Backend/ProspectAPI-Prod/ecs/app"
        name              = "/Backend/ProspectAPI-Prod/ecs/app"
        tags              = {
            "environment" = "Prod

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

 = "private" -> null
      - arn                         = "arn:aws:s3:::pocket-codepipeline-22a3c59f8e5e2b9bc46672eab259c2ba" -> null
      - bucket                      = "pocket-codepipeline-22a3c59f8e5e2b9bc46672eab259c2ba" -> null
      - bucket_domain_name          = "pocket-codepipeline-22a3c59f8e5e2b9bc46672eab259c2ba.s3.amazonaws.com" -> null
      - bucket_prefix               = "pocket-codepipeline-22a3c5" -> null
      - bucket_regional_domain_name = "pocket-codepipeline-22a3c59f8e5e2b9bc46672eab259c2ba.s3.us-east-1.amazonaws.com" -> null
      - force_destroy               = true -> null
      - hosted_zone_id              = "Z3AQBSTGFYJSTF" -> null
      - id                          = "pocket-codepipeline-22a3c59f8e5e2b9bc46672eab259c2ba" -> null
      - object_lock_enabled         = false -> null
      - region                      = "us-east-1" -> null
      - request_payer               = "BucketOwner" -> null
      - tags                        = {} -> null
      - tags_all                    = {} -> null

      - grant {
          - id          = "92f1efb5501a01f6ebb8e3628131c3483688d3e5ca1a7c175420c565a06a6616" -> null
          - permissions = [
              - "FULL_CONTROL",
            ] -> null
          - type        = "CanonicalUser" -> null
        }

      - server_side_encryption_configuration {
          - rule {
              - bucket_key_enabled = false -> null

              - apply_server_side_encryption_by_default {
                  - sse_algorithm = "AES256" -> null
                }
            }
        }

      - versioning {
          - enabled    = false -> null
          - mfa_delete = false -> null
        }
    }

  # aws_s3_bucket.prospectapi_translationlambda_translationsqslambda_codebucket_DA2B78C4 has moved to aws_s3_bucket.translation-lambda_translation-sqs-lambda_code-bucket_8041EB81
    resource "aws_s3_bucket" "translation-lambda_translation-sqs-lambda_code-bucket_8041EB81" {
        id                          = "pocket-prospectapi-prod-sqs-translation"
        tags                        = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (11 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # aws_s3_bucket_acl.translation-lambda_translation-sqs-lambda_code-bucket-acl_51DA7819 will be created
  + resource "aws_s3_bucket_acl" "translation-lambda_translation-sqs-lambda_code-bucket-acl_51DA7819" {
      + acl    = "private"
      + bucket = "pocket-prospectapi-prod-sqs-translation"
      + id     = (known after apply)
    }

  # aws_s3_bucket_ownership_controls.translation-lambda_translation-sqs-lambda_code-bucket-ownership-controls_0A8BE3B3 will be created
  + resource "aws_s3_bucket_ownership_controls" "translation-lambda_translation-sqs-lambda_code-bucket-ownership-controls_0A8BE3B3" {
      + bucket = "pocket-prospectapi-prod-sqs-translation"
      + id     = (known after apply)

      + rule {
          + object_ownership = "BucketOwnerPreferred"
        }
    }

  # aws_s3_bucket_public_access_block.prospectapi_translationlambda_translationsqslambda_codebucketpublicaccessblock_54952A58 has moved to aws_s3_bucket_public_access_block.translation-lambda_translation-sqs-lambda_code-bucket-public-access-block_68EE0417
    resource "aws_s3_bucket_public_access_block" "translation-lambda_translation-sqs-lambda_code-bucket-public-access-block_68EE0417" {
        id                      = "pocket-prospectapi-prod-sqs-translation"
        # (5 unchanged attributes hidden)
    }

  # aws_security_group.prospectapi_application_applicationloadbalancer_albsecuritygroup_4B1874E4 has moved to aws_security_group.application_application_load_balancer_alb_security_group_7B45D070
    resource "aws_security_group" "application_application_load_balancer_alb_security_group_7B45D070" {
        id                     = "sg-00a0505366a83efd2"
        name                   = "ProspectAPI-Prod-HTTP/S Security Group20210923161746285900000002"
        tags                   = {
            "Name"        = "ProspectAPI-Prod-HTTP/S Security Group"
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (9 unchanged attributes hidden)
    }

  # aws_security_group.prospectapi_application_ecsservice_ecssecuritygroup_D05D5BB0 has moved to aws_security_group.application_ecs_service_ecs_security_group_231C6B1E
    resource "aws_security_group" "application_ecs_service_ecs_security_group_231C6B1E" {
        id                     = "sg-05d724400f22e3055"
        name                   = "ProspectAPI-Prod-ECSSecurityGroup2021092316174802550000000d"
        tags                   = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (9 unchanged attributes hidden)
    }

  # aws_sns_topic.prospectapi_pagerduty_alarmcriticaltopic_62F70C43 has moved to aws_sns_topic.pagerduty_alarm-critical-topic_F1534579
    resource "aws_sns_topic" "pagerduty_alarm-critical-topic_F1534579" {
        id                                       = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Critical"
        name                                     = "ProspectAPI-Prod-Infrastructure-Alarm-Critical"
        tags                                     = {}
        # (12 unchanged attributes hidden)
    }

  # aws_sns_topic.prospectapi_pagerduty_alarmnoncriticaltopic_CDD6DCFB has moved to aws_sns_topic.pagerduty_alarm-non-critical-topic_53C1A3B3
    resource "aws_sns_topic" "pagerduty_alarm-non-critical-topic_53C1A3B3" {
        id                                       = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Non-Critical"
        name                                     = "ProspectAPI-Prod-Infrastructure-Alarm-Non-Critical"
        tags                                     = {}
        # (12 unchanged attributes hidden)
    }

  # aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84 must be replaced
  # (moved from aws_sns_topic_subscription.prospectapi_pagerduty_alarmcriticalsubscription_B9B6BD84)
-/+ resource "aws_sns_topic_subscription" "pagerduty_alarm-critical-subscription_E2168B84" {
      ~ arn                             = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Critical:bfd73935-21a4-4c95-ab10-6cec252463d8" -> (known after apply)
      ~ confirmation_was_authenticated  = false -> (known after apply)
      ~ endpoint                        = "https://events.pagerduty.com/integration/02cef4aaffc84905c0f9513e77be4609/enqueue" # forces replacement -> (known after apply) # forces replacement
      + filter_policy_scope             = (known after apply)
      ~ id                              = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Critical:bfd73935-21a4-4c95-ab10-6cec252463d8" -> (known after apply)
      ~ owner_id                        = "996905175585" -> (known after apply)
      ~ pending_confirmation            = false -> (known after apply)
        # (5 unchanged attributes hidden)
    }

  # aws_sns_topic_subscription.pagerduty_alarm-non-critical-subscription_4702677B must be replaced
  # (moved from aws_sns_topic_subscription.prospectapi_pagerduty_alarmnoncriticalsubscription_0DD66169)
-/+ resource "aws_sns_topic_subscription" "pagerduty_alarm-non-critical-subscription_4702677B" {
      ~ arn                             = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Non-Critical:782e2207-b96a-4d74-8196-c9c2bf108bb1" -> (known after apply)
      ~ confirmation_was_authenticated  = false -> (known after apply)
      ~ endpoint                        = "https://events.pagerduty.com/integration/85080a2a67934600c055551922ee4728/enqueue" # forces replacement -> (known after apply) # forces replacement
      + filter_policy_scope             = (known after apply)
      ~ id                              = "arn:aws:sns:us-east-1:996905175585:ProspectAPI-Prod-Infrastructure-Alarm-Non-Critical:782e2207-b96a-4d74-8196-c9c2bf108bb1" -> (known after apply)
      ~ owner_id                        = "996905175585" -> (known after apply)
      ~ pending_confirmation            = false -> (known after apply)
        # (5 unchanged attributes hidden)
    }

  # aws_sqs_queue.prospectapi_translationlambda_translationsqslambda_lambdasqsqueue_1D1B525B has moved to aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_486217BD
    resource "aws_sqs_queue" "translation-lambda_translation-sqs-lambda_lambda_sqs_queue_486217BD" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/ProspectAPI-Prod-Sqs-Translation-Queue"
        name                              = "ProspectAPI-Prod-Sqs-Translation-Queue"
        tags                              = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (14 unchanged attributes hidden)
    }

  # aws_sqs_queue.prospectapi_translationlambda_translationsqslambda_lambdasqsqueue_redrivesqsqueue_7A12B837 has moved to aws_sqs_queue.translation-lambda_translation-sqs-lambda_lambda_sqs_queue_redrive_sqs_queue_25D64172
    resource "aws_sqs_queue" "translation-lambda_translation-sqs-lambda_lambda_sqs_queue_redrive_sqs_queue_25D64172" {
        id                                = "https://sqs.us-east-1.amazonaws.com/996905175585/ProspectAPI-Prod-Sqs-Translation-Queue-Deadletter"
        name                              = "ProspectAPI-Prod-Sqs-Translation-Queue-Deadletter"
        tags                              = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (12 unchanged attributes hidden)
    }

  # local_file.application_ecs_service_appspec_94386B9C will be created
  # (moved from local_file.prospectapi_application_ecsservice_appspec_E5A1C8E1)
  + resource "local_file" "application_ecs_service_appspec_94386B9C" {
      + content              = jsonencode(
            {
              + Resources = [
                  + {
                      + TargetService = {
                          + Properties = {
                              + LoadBalancerInfo = {
                                  + ContainerName = "app"
                                  + ContainerPort = 4026
                                }
                              + TaskDefinition   = "arn:aws:ecs:us-east-1:996905175585:task-definition/ProspectAPI-Prod:390"
                            }
                          + 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_update-task-definition_D19A511D will be created
  + resource "null_resource" "application_ecs_service_update-task-definition_D19A511D" {
      + id       = (known after apply)
      + triggers = {
          + "task_arn" = "arn:aws:ecs:us-east-1:996905175585:task-definition/ProspectAPI-Prod:390"
        }
    }

  # null_resource.prospectapi_application_ecsservice_createtaskdefinitionfile_1392450E will be destroyed
  # (because null_resource.prospectapi_application_ecsservice_createtaskdefinitionfile_1392450E is not in configuration)
  - resource "null_resource" "prospectapi_application_ecsservice_createtaskdefinitionfile_1392450E" {
      - id       = "1391204859741161593" -> null
      - triggers = {
          - "alwaysRun" = "2024-01-09T17:25:23Z"
        } -> null
    }

  # pagerduty_service.prospectapi_pagerduty_pagerdutycritical_01983BAA has moved to pagerduty_service.pagerduty_pagerduty-critical_464EE7CD
    resource "pagerduty_service" "pagerduty_pagerduty-critical_464EE7CD" {
        id                      = "PTPUWNY"
        name                    = "ProspectAPI-Prod-PagerDuty-Critical"
        # (10 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # pagerduty_service.prospectapi_pagerduty_pagerdutynoncritical_AE41ED57 has moved to pagerduty_service.pagerduty_pagerduty-non-critical_B4CB3938
    resource "pagerduty_service" "pagerduty_pagerduty-non-critical_B4CB3938" {
        id                      = "PWLFWML"
        name                    = "ProspectAPI-Prod-PagerDuty-Non-Critical"
        # (10 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # pagerduty_service_integration.pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5 will be created
  + resource "pagerduty_service_integration" "pagerduty_pagerduty_cloudwatch_7956692A-critical_546FC7B5" {
      + email_filter_mode       = (known after apply)
      + email_incident_creation = (known after apply)
      + email_parsing_fallback  = (known after apply)
      + html_url                = (known after apply)
      + id                      = (known after apply)
      + integration_email       = (known after apply)
      + integration_key         = (known after apply)
      + name                    = "Amazon CloudWatch"
      + service                 = "PTPUWNY"
      + 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                 = "PWLFWML"
      + 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                 = "PTPUWNY"
      + 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                 = "PWLFWML"
      + type                    = (known after apply)
      + vendor                  = "PKAPG94"
    }

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

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

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

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

Plan: 11 to add, 3 to change, 14 to destroy.
╷
│ Warning: Deprecated attribute
│ 
│   on cdk.tf.json line 2699, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:2699:         "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)
╵

⚠️ Warnings

Warning: Deprecated attribute
 
   on cdk.tf.json line 2699, in resource.aws_sns_topic_subscription.pagerduty_alarm-critical-subscription_E2168B84:
 2699:         "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)

Copy link
Collaborator

@efixler efixler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but I can't really know for sure. Based on our conversation in Slack you are going to attempt to confirm that we have a DB backup before pulling the trigger.

@katerinachinnappan katerinachinnappan marked this pull request as draft January 10, 2024 20:45
Copy link
Contributor

@mmiermans mmiermans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 The Terraform summary shows that the dynamodb_table is updated/moved. Looking at the full Terraform plan, it says it "will be updated in-place" to increase read/write capacity, which is good.

  # aws_dynamodb_table.dynamodb_prospects_dynamodb_table_9854E41E will be updated in-place
  # (moved from aws_dynamodb_table.prospectapi_dynamodb_prospects_dynamodbtable_972079A4)
  ~ resource "aws_dynamodb_table" "dynamodb_prospects_dynamodb_table_9854E41E" {
        id                          = "PROAPI-Prod-Prospects"
        name                        = "PROAPI-Prod-Prospects"
        tags                        = {
            "environment" = "Prod"
            "service"     = "ProspectAPI"
        }
        # (9 unchanged attributes hidden)

      - global_secondary_index {
          - hash_key           = "scheduledSurfaceGuid" -> null
          - name               = "scheduledSurfaceGuid-prospectType" -> null
          - non_key_attributes = [] -> null
          - projection_type    = "ALL" -> null
          - range_key          = "prospectType" -> null
          - read_capacity      = 0 -> null
          - write_capacity     = 0 -> null
        }
      + global_secondary_index {
          + hash_key           = "scheduledSurfaceGuid"
          + name               = "scheduledSurfaceGuid-prospectType"
          + non_key_attributes = []
          + projection_type    = "ALL"
          + range_key          = "prospectType"
          + read_capacity      = 5
          + write_capacity     = 5
        }

        # (5 unchanged blocks hidden)
    }

@mmiermans
Copy link
Contributor

Additionally, our DynamoDB tables are protected from deletion by default. I confirmed that prospect-api doesn't disable this protection.

I don't think there's any risk of data loss.

To seed the table with data, run the seeding script:
```
pnpm db:seed
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add cp example.env .env to Dev / Local Testing

example.env Outdated Show resolved Hide resolved
example.env Outdated Show resolved Hide resolved
servers/prospect-api/README.md Outdated Show resolved Hide resolved
servers/prospect-api/README.md Outdated Show resolved Hide resolved
Copy link
Contributor

@jpetto jpetto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a huge change! exciting!

made one comment to add a, er, comment to the prospect API readme (as it's now a bit out of date).

other than that, the only blocker here for me would be as eric alluded to - a deployment plan that includes a rollback strategy in case of error. that should definitely include backing up the dynamo table first 😅. happy to help with this if you'd like!

@@ -0,0 +1,159 @@
# Prospect API
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably good to put a note at the top of this file that says it is (as of now) out of date and in need of updating.

@katerinachinnappan katerinachinnappan marked this pull request as ready for review January 10, 2024 23:11
@katerinachinnappan katerinachinnappan merged commit 4e31dcc into main Jan 10, 2024
9 checks passed
@katerinachinnappan katerinachinnappan deleted the katerina/feat-migrate-prospect-api branch January 11, 2024 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants