{ "name": "uptime", "version": "1.0.0", "kind": "l1", "type": "aws:ecs:uptime-service", "description": "Deploys uptime-kuma as an ECS Fargate container for self-hosted uptime monitoring. Supports HTTP, DNS, and TCP health checks. Includes alert channels (Teams, email, SMS, GitHub issues). Deployed by default after any L2 module with a separate terraform state. Can be disabled via the feature_flag_enabled input.", "inputs": { "container_image": { "type": "string", "description": "Docker image for uptime-kuma", "required": false, "default": "louislam/uptime-kuma:1" }, "region": { "type": "string", "description": "AWS region", "required": true }, "uptime_url": { "type": "string", "description": "Custom domain for the uptime dashboard (optional; if absent, the ALB DNS is used)", "required": false }, "monitored_endpoints": { "type": "array", "description": "Array of endpoints to monitor. Each entry: {name, url, type (http|dns|tcp), interval_seconds, timeout_seconds}", "required": false, "default": [] }, "static_checks": { "type": "array", "description": "Pre-defined health checks (hardcoded monitors that don't depend on L2 outputs). Same shape as monitored_endpoints.", "required": false, "default": [] }, "alert_channels": { "type": "object", "description": "Alert notification channels. Keys: teams_webhook (string), email_addresses (array of strings), sms_numbers (array of strings), github_issue_repo (string, org/repo format)", "required": false, "default": {} }, "feature_flag_enabled": { "type": "boolean", "description": "Feature flag: when false, no resources are emitted (the uptime deployment is skipped entirely)", "required": false, "default": true }, "cpu": { "type": "number", "description": "CPU units for the ECS task (256 = 0.25 vCPU)", "required": false, "default": 256 }, "memory": { "type": "number", "description": "Memory for the ECS task in MB", "required": false, "default": 512 }, "subnets": { "type": "string", "description": "Comma-separated subnet IDs for the ECS service ENIs", "required": false }, "security_group": { "type": "string", "description": "Security group ID for the ECS service ENIs", "required": false }, "cluster_arn": { "type": "string", "description": "ECS cluster ARN to deploy the service into", "required": false }, "enabled": { "type": "boolean", "default": true, "description": "Feature flag: enable/disable this module. Set to false to skip resource creation." } }, "outputs": { "uptime_url": { "type": "string", "description": "The URL of the uptime-kuma dashboard (ALB DNS or custom domain)" }, "service_arn": { "type": "arn", "description": "The ARN of the ECS service" }, "task_definition_arn": { "type": "arn", "description": "The ARN of the ECS task definition" } }, "nfrs": { "deletion_protection": { "type": "boolean", "description": "Prevent resource destruction via Terraform lifecycle prevent_destroy", "default": true }, "encryption_enabled": { "type": "boolean", "description": "Enable CloudWatch log group encryption with KMS", "default": true } } }