##################################
#       API Gateway Outputs      #
##################################

output "api_gateway_url" {
  description = "The URL of the API Gateway endpoint"
  value       = "${aws_api_gateway_stage.dev.invoke_url}/api"
}

output "api_gateway_id" {
  description = "The ID of the API Gateway REST API"
  value       = aws_api_gateway_rest_api.dsp_visualizer_api.id
}

output "api_gateway_execution_arn" {
  description = "The execution ARN of the API Gateway"
  value       = aws_api_gateway_rest_api.dsp_visualizer_api.execution_arn
}

output "api_gateway_stage_name" {
  description = "The name of the API Gateway stage"
  value       = aws_api_gateway_stage.dev.stage_name
}

##################################
#       Lambda Outputs           #
##################################

output "lambda_function_arn" {
  description = "ARN of the Lambda function"
  value       = aws_lambda_function.dsp_visualizer.arn
}

output "lambda_function_name" {
  description = "Name of the Lambda function"
  value       = aws_lambda_function.dsp_visualizer.function_name
}

output "lambda_function_invoke_arn" {
  description = "Invoke ARN of the Lambda function"
  value       = aws_lambda_function.dsp_visualizer.invoke_arn
}

output "lambda_role_arn" {
  description = "ARN of the Lambda execution role"
  value       = aws_iam_role.dsp_visualizer_lambda_role.arn
}

output "lambda_role_name" {
  description = "Name of the Lambda execution role"
  value       = aws_iam_role.dsp_visualizer_lambda_role.name
}

output "lambda_cloudwatch_log_group_name" {
  description = "Name of the Lambda CloudWatch Log Group"
  value       = aws_cloudwatch_log_group.dsp_visualizer_lambda_logs.name
}

output "lambda_cloudwatch_log_group_arn" {
  description = "ARN of the Lambda CloudWatch Log Group"
  value       = aws_cloudwatch_log_group.dsp_visualizer_lambda_logs.arn
}