output "lambda_arn" {
  value = aws_lambda_function.function.arn
}

output "lambda_name" {
  value = local.function_name
}

output "lambda_invoke_arn" {
  value = local.provisioned_concurrency_enabled ? aws_lambda_alias.provisioned.0.invoke_arn : aws_lambda_function.function.invoke_arn
}

output "lambda_qualified_arn" {
  value = aws_lambda_function.function.qualified_arn
}

output "lambda_qualifier" {
  description = "Points to Lambda's provisioned alias or latest version."
  value       = local.provisioned_concurrency_enabled ? aws_lambda_alias.provisioned.0.name : aws_lambda_function.function.version
}

output "lambda_version" {
  value = aws_lambda_function.function.version
}

output "lambda_kms_key" {
  value = aws_kms_key.lambda_kms_key.arn
}

output "lambda_dlq_arn" {
  description = "ARN of dead letter queue. Can be either an SNS topic or SQS queue, depending on the value of var.dlq_type"
  value = (
    var.dlq_enabled ?
    (var.dlq_type == "sqs" ? aws_sqs_queue.dead_letter_queue.0.arn : aws_sns_topic.dead_letter_topic.0.arn) :
    null
  )

}

output "lambda_role_id" {
  value = aws_iam_role.lambda_execution_role.id
}

output "lambda_role_unique_id" {
  value = aws_iam_role.lambda_execution_role.unique_id
}

output "lambda_role_arn" {
  value = aws_iam_role.lambda_execution_role.arn
}

output "msk_event_source_mapping_uuid" {
  # Could have none, one, or many msk event source mappings
  value = length(aws_lambda_event_source_mapping.msk_event_source_mapping) > 0 ? aws_lambda_event_source_mapping.msk_event_source_mapping[*].uuid : null
}
