# Import map: docs/plat-86/import-map.md (seahaven-prod, 2026-08-06). # IAM roles are NOT imported — new /tf-managed/ roles replace CDK roles on cutover. # --- DynamoDB --- import { to = aws_dynamodb_table.purchase_orders id = "purchase-orders" } import { to = aws_dynamodb_table.verified_sites id = "verified-sites" } import { to = aws_dynamodb_table.pending_site_review id = "pending-site-review" } # PLAT-11 kebab tables — created out-of-band then imported after HCP CreateTable # IAM pin widened (hcptf-procurement-ingest lacked kebab ARNs on first apply). import { to = aws_dynamodb_table.work_orders_kebab id = "work-orders" } import { to = aws_dynamodb_table.work_order_comments_kebab id = "work-order-comments" } # --- S3 email buckets --- import { to = aws_s3_bucket.po_emails id = "po-ingest-emails-011934824531" } import { to = aws_s3_bucket.wo_emails id = "workorder-ingest-emails-011934824531" } # --- SQS --- import { to = aws_sqs_queue.po_email_processor_dlq id = "https://sqs.us-east-1.amazonaws.com/011934824531/po-ingest-EmailProcessorDlqA753DED5-Mn33HvhsDPEu" } import { to = aws_sqs_queue.wo_email_processor_dlq id = "https://sqs.us-east-1.amazonaws.com/011934824531/WorkorderIngestStack-EmailProcessorDlqA753DED5-qCTHrsoEucas" } import { to = aws_sqs_queue.shoc_emitter_failures id = "https://sqs.us-east-1.amazonaws.com/011934824531/workorder-shoc-emitter-failures" } import { to = aws_sqs_queue.shoc_emitter_rejected id = "https://sqs.us-east-1.amazonaws.com/011934824531/workorder-shoc-emitter-rejected" } # --- Lambdas --- import { to = aws_lambda_function.po_email_processor id = "po-email-processor" } import { to = aws_lambda_function.po_web_ui id = "po-web-ui" } import { to = aws_lambda_function.po_site_extractor id = "po-ingest-site-extractor" } import { to = aws_lambda_function.wo_email_processor id = "workorder-email-processor" } import { to = aws_lambda_function.wo_web_ui id = "workorder-web-ui" } import { to = aws_lambda_function.wo_shoc_emitter id = "workorder-shoc-emitter" } import { to = aws_lambda_function.wo_shoc_hmac_rotator id = "workorder-shoc-hmac-rotator" } import { to = aws_lambda_function.procurement_api id = "procurement-api" } # --- Event source mappings --- import { to = aws_lambda_event_source_mapping.po_site_extractor id = "64fbee1f-d9c3-4cfd-aced-19b9d29940f8" } import { to = aws_lambda_event_source_mapping.wo_shoc_emitter_work_orders id = "9cde1138-f108-4e9d-8696-cc49f9ee7b6b" } import { to = aws_lambda_event_source_mapping.wo_shoc_emitter_comments id = "afe9b559-9f5d-4b1c-875b-09348a3bab67" } # --- Log groups --- import { to = aws_cloudwatch_log_group.po_email_processor id = "/aws/lambda/po-email-processor" } import { to = aws_cloudwatch_log_group.po_web_ui id = "/aws/lambda/po-web-ui" } import { to = aws_cloudwatch_log_group.po_site_extractor id = "/aws/lambda/po-ingest-site-extractor" } import { to = aws_cloudwatch_log_group.wo_email_processor id = "/aws/lambda/workorder-email-processor" } import { to = aws_cloudwatch_log_group.wo_web_ui id = "/aws/lambda/workorder-web-ui" } import { to = aws_cloudwatch_log_group.wo_shoc_emitter id = "/aws/lambda/workorder-shoc-emitter" } import { to = aws_cloudwatch_log_group.wo_shoc_hmac_rotator id = "/aws/lambda/workorder-shoc-hmac-rotator" } import { to = aws_cloudwatch_log_group.procurement_api id = "/aws/lambda/procurement-api" } # --- SES receipt rules --- import { to = aws_ses_receipt_rule.po_email id = "INBOUND_MAIL:ExistingRuleSetPoEmailRuleAC8E9C87-qwGDj9lBoL1G" } import { to = aws_ses_receipt_rule.wo_email id = "INBOUND_MAIL:ExistingRuleSetWorkorderEmailRuleEA29F845-PKtaDBvIg61a" } # --- SHOC KMS + secret --- import { to = aws_kms_key.shoc_webhook id = "d10fd1f0-a61a-4405-8568-85e9fd11ba18" } import { to = aws_kms_alias.shoc_webhook id = "alias/workorder-ingest-shoc-webhook-kms" } import { to = aws_secretsmanager_secret.shoc_webhook_hmac id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB" } import { to = aws_secretsmanager_secret_policy.shoc_webhook_hmac id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB" } import { to = aws_secretsmanager_secret_rotation.shoc_webhook_hmac id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB" } # --- Metric filters --- import { to = aws_cloudwatch_log_metric_filter.po_sender_auth_rejected id = "/aws/lambda/po-email-processor:EmailProcessorSenderAuthRejectedFilterC0DAEDFE-3K6wBb003iDv" } import { to = aws_cloudwatch_log_metric_filter.wo_sender_auth_rejected id = "/aws/lambda/workorder-email-processor:EmailProcessorSenderAuthRejectedFilterC0DAEDFE-Wkbow1VNDeDM" } # --- API Gateway --- import { to = aws_api_gateway_rest_api.procurement id = "mvul1efda2" } import { to = aws_api_gateway_domain_name.procurement id = "procurement-api.seahaven.com" } import { to = aws_api_gateway_stage.prod id = "mvul1efda2/prod" } import { to = aws_api_gateway_base_path_mapping.procurement id = "procurement-api.seahaven.com/" } import { to = aws_api_gateway_deployment.procurement id = "mvul1efda2/uax9sq" } import { to = aws_api_gateway_resource.work_orders id = "mvul1efda2/h5iu4f" } import { to = aws_api_gateway_resource.work_order_id id = "mvul1efda2/4uk6uh" } import { to = aws_api_gateway_resource.work_order_comments id = "mvul1efda2/gfx0te" } import { to = aws_api_gateway_resource.purchase_orders id = "mvul1efda2/pfn6qm" } import { to = aws_api_gateway_resource.po_number id = "mvul1efda2/nclnn3" } import { to = aws_api_gateway_resource.verified_sites id = "mvul1efda2/vyst7e" } import { to = aws_api_gateway_resource.site_code id = "mvul1efda2/rmaawy" } import { to = aws_api_gateway_resource.docs id = "mvul1efda2/k4vl85" } import { to = aws_api_gateway_resource.openapi_json id = "mvul1efda2/xos715" } import { to = aws_api_gateway_method.iam["work_orders_get"] id = "mvul1efda2/h5iu4f/GET" } import { to = aws_api_gateway_method.iam["work_order_id_get"] id = "mvul1efda2/4uk6uh/GET" } import { to = aws_api_gateway_method.iam["work_order_id_patch"] id = "mvul1efda2/4uk6uh/PATCH" } import { to = aws_api_gateway_method.iam["work_order_comments_get"] id = "mvul1efda2/gfx0te/GET" } import { to = aws_api_gateway_method.iam["work_order_comments_post"] id = "mvul1efda2/gfx0te/POST" } import { to = aws_api_gateway_method.iam["purchase_orders_get"] id = "mvul1efda2/pfn6qm/GET" } import { to = aws_api_gateway_method.iam["po_number_get"] id = "mvul1efda2/nclnn3/GET" } import { to = aws_api_gateway_method.iam["verified_sites_get"] id = "mvul1efda2/vyst7e/GET" } import { to = aws_api_gateway_method.iam["site_code_get"] id = "mvul1efda2/rmaawy/GET" } import { to = aws_api_gateway_method.none["docs_get"] id = "mvul1efda2/k4vl85/GET" } import { to = aws_api_gateway_method.none["openapi_json_get"] id = "mvul1efda2/xos715/GET" } import { to = aws_api_gateway_integration.iam["work_orders_get"] id = "mvul1efda2/h5iu4f/GET" } import { to = aws_api_gateway_integration.iam["work_order_id_get"] id = "mvul1efda2/4uk6uh/GET" } import { to = aws_api_gateway_integration.iam["work_order_id_patch"] id = "mvul1efda2/4uk6uh/PATCH" } import { to = aws_api_gateway_integration.iam["work_order_comments_get"] id = "mvul1efda2/gfx0te/GET" } import { to = aws_api_gateway_integration.iam["work_order_comments_post"] id = "mvul1efda2/gfx0te/POST" } import { to = aws_api_gateway_integration.iam["purchase_orders_get"] id = "mvul1efda2/pfn6qm/GET" } import { to = aws_api_gateway_integration.iam["po_number_get"] id = "mvul1efda2/nclnn3/GET" } import { to = aws_api_gateway_integration.iam["verified_sites_get"] id = "mvul1efda2/vyst7e/GET" } import { to = aws_api_gateway_integration.iam["site_code_get"] id = "mvul1efda2/rmaawy/GET" } import { to = aws_api_gateway_integration.none["docs_get"] id = "mvul1efda2/k4vl85/GET" } import { to = aws_api_gateway_integration.none["openapi_json_get"] id = "mvul1efda2/xos715/GET" } # --- CloudWatch alarms (PO) --- import { to = aws_cloudwatch_metric_alarm.po_email_processor_errors id = "po-email-processor-errors" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_throttles id = "po-email-processor-throttles" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_dlq id = "po-email-processor-dlq-messages" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_duration id = "po-email-processor-duration" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_sender_auth_rejected id = "po-email-processor-sender-auth-rejected" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_fallback_rate id = "po-email-processor-template-fallback-rate" } import { to = aws_cloudwatch_metric_alarm.po_email_processor_ai_fallback_rejected id = "po-email-processor-ai-fallback-rejected" } import { to = aws_cloudwatch_metric_alarm.po_web_ui_throttles id = "po-web-ui-throttles" } import { to = aws_cloudwatch_metric_alarm.po_web_ui_duration id = "po-web-ui-duration" } import { to = aws_cloudwatch_metric_alarm.po_site_extractor_errors id = "po-ingest-site-extractor-errors" } import { to = aws_cloudwatch_metric_alarm.po_site_extractor_throttles id = "po-ingest-site-extractor-throttles" } import { to = aws_cloudwatch_metric_alarm.po_site_extractor_duration id = "po-ingest-site-extractor-duration" } import { to = aws_cloudwatch_metric_alarm.po_ddb_throttles["purchase-orders"] id = "purchase-orders-throttles" } import { to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["purchase-orders"] id = "purchase-orders-system-errors" } import { to = aws_cloudwatch_metric_alarm.po_ddb_throttles["verified-sites"] id = "verified-sites-throttles" } import { to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["verified-sites"] id = "verified-sites-system-errors" } import { to = aws_cloudwatch_metric_alarm.po_ddb_throttles["pending-site-review"] id = "pending-site-review-throttles" } import { to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["pending-site-review"] id = "pending-site-review-system-errors" } # --- CloudWatch alarms (WO) --- import { to = aws_cloudwatch_metric_alarm.wo_email_processor_errors id = "workorder-email-processor-errors" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_throttles id = "workorder-email-processor-throttles" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_dlq id = "workorder-email-processor-dlq-messages" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_duration id = "workorder-email-processor-duration" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_sender_auth_rejected id = "workorder-email-processor-sender-auth-rejected" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_fallback_rate id = "workorder-email-processor-template-fallback-rate" } import { to = aws_cloudwatch_metric_alarm.wo_email_processor_ai_fallback_rejected id = "workorder-email-processor-ai-fallback-rejected" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_errors id = "workorder-shoc-hmac-rotator-errors" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_throttles id = "workorder-shoc-hmac-rotator-throttles" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_duration id = "workorder-shoc-hmac-rotator-duration" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_errors id = "workorder-shoc-emitter-errors" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_throttles id = "workorder-shoc-emitter-throttles" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_duration id = "workorder-shoc-emitter-duration" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_iterator_age id = "workorder-shoc-emitter-iterator-age" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_failures_messages id = "workorder-shoc-emitter-failures-messages" } import { to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_rejected_messages id = "workorder-shoc-emitter-rejected-messages" } # PLAT-11 cutover: PascalCase WO DDB alarm imports removed when alarm map # keys moved to work-orders / work-order-comments. Legacy alarm resources are # destroyed by the cutover apply; kebab alarms are created fresh. # --- CloudWatch alarms (API) --- import { to = aws_cloudwatch_metric_alarm.procurement_api_errors id = "procurement-api-errors" } import { to = aws_cloudwatch_metric_alarm.procurement_api_throttles id = "procurement-api-throttles" } import { to = aws_cloudwatch_metric_alarm.procurement_api_duration id = "procurement-api-duration" } import { to = aws_cloudwatch_metric_alarm.procurement_api_5xx id = "procurement-api-5xx" }