resource "aws_lambda_function" "unlock" { function_name = local.function_packages.unlock.function_name role = aws_iam_role.unlock.arn handler = local.function_packages.unlock.handler runtime = "nodejs24.x" architectures = ["arm64"] memory_size = local.function_packages.unlock.memory timeout = local.function_packages.unlock.timeout s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.function["unlock"].key source_code_hash = data.archive_file.function["unlock"].output_base64sha256 environment { variables = { ELEMENTS_API_KEY_PARAM = local.elements_api_key_param AUTH_TOKEN_PARAM = local.auth_token_param DOOR_ID_PARAM = local.door_id_param } } depends_on = [ aws_cloudwatch_log_group.function, aws_iam_role_policy.unlock, aws_iam_role_policy_attachment.unlock_basic, ] } resource "aws_lambda_function" "lockdown" { function_name = local.function_packages.lockdown.function_name role = aws_iam_role.lockdown.arn handler = local.function_packages.lockdown.handler runtime = "nodejs24.x" architectures = ["arm64"] memory_size = local.function_packages.lockdown.memory timeout = local.function_packages.lockdown.timeout s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.function["lockdown"].key source_code_hash = data.archive_file.function["lockdown"].output_base64sha256 environment { variables = { ELEMENTS_API_KEY_PARAM = local.elements_api_key_param AUTH_TOKEN_PARAM = local.auth_token_param } } depends_on = [ aws_cloudwatch_log_group.function, aws_iam_role_policy.lockdown, aws_iam_role_policy_attachment.lockdown_basic, ] } resource "aws_lambda_function" "authorizer" { function_name = local.function_packages.authorizer.function_name role = aws_iam_role.authorizer.arn handler = local.function_packages.authorizer.handler runtime = "nodejs24.x" architectures = ["arm64"] memory_size = local.function_packages.authorizer.memory timeout = local.function_packages.authorizer.timeout s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.function["authorizer"].key source_code_hash = data.archive_file.function["authorizer"].output_base64sha256 environment { variables = { AUTH_TOKEN_PARAM = local.auth_token_param } } depends_on = [ aws_cloudwatch_log_group.function, aws_iam_role_policy.authorizer, aws_iam_role_policy_attachment.authorizer_basic, ] } resource "aws_lambda_function" "poller" { function_name = local.function_packages.poller.function_name role = aws_iam_role.poller.arn handler = local.function_packages.poller.handler runtime = "nodejs24.x" architectures = ["arm64"] memory_size = local.function_packages.poller.memory timeout = local.function_packages.poller.timeout s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.function["poller"].key source_code_hash = data.archive_file.function["poller"].output_base64sha256 environment { variables = { ELEMENTS_API_KEY_PARAM = local.elements_api_key_param } } depends_on = [ aws_cloudwatch_log_group.function, aws_iam_role_policy.poller, aws_iam_role_policy_attachment.poller_basic, ] } resource "aws_lambda_function" "blf_sync" { function_name = local.function_packages.blf_sync.function_name role = aws_iam_role.blf_sync.arn handler = local.function_packages.blf_sync.handler runtime = "nodejs24.x" architectures = ["arm64"] memory_size = local.function_packages.blf_sync.memory timeout = local.function_packages.blf_sync.timeout s3_bucket = aws_s3_bucket.artifacts.id s3_key = aws_s3_object.function["blf_sync"].key source_code_hash = data.archive_file.function["blf_sync"].output_base64sha256 environment { variables = { THREE_CX_DOMAIN_SECRET = local.three_cx_domain_secret_name THREE_CX_CLIENT_ID_SECRET = local.three_cx_client_id_secret_name THREE_CX_CLIENT_SECRET_SECRET = local.three_cx_client_secret_secret_name DRY_RUN = "false" } } depends_on = [ aws_cloudwatch_log_group.function, aws_iam_role_policy.blf_sync, aws_iam_role_policy_attachment.blf_sync_basic, ] }