variable "functions" { description = "Map of Lambda function definitions" type = map(object({ name = string description = optional(string, "") runtime = string handler = string role_arn = string filename = optional(string, null) s3_bucket = optional(string, null) s3_key = optional(string, null) s3_object_version = optional(string, null) image_uri = optional(string, null) architectures = optional(list(string), ["x86_64"]) memory_size = optional(number, 128) timeout = optional(number, 30) reserved_concurrent_executions = optional(number, -1) publish = optional(bool, false) kms_key_arn = optional(string, null) environment = optional(map(string), {}) layers = optional(list(string), []) # VPC config subnet_ids = optional(list(string), []) security_group_ids = optional(list(string), []) # Tracing tracing_mode = optional(string, "PassThrough") # Event source mappings event_sources = optional(list(object({ event_source_arn = string batch_size = optional(number, 10) starting_position = optional(string, null) function_response_types = optional(list(string), []) bisect_on_function_error = optional(bool, true) })), []) })) default = {} } variable "layers" { description = "Map of Lambda layer definitions" type = map(object({ name = string description = optional(string, "") filename = optional(string, null) s3_bucket = optional(string, null) s3_key = optional(string, null) compatible_runtimes = optional(list(string), []) compatible_architectures = optional(list(string), ["x86_64"]) })) default = {} } variable "tags" { description = "Resource tags to apply to all resources" type = map(string) default = {} }