name = "aws_provider_fragment"

[[elements]]
border_bottom = true
border_top = true
name = "aws_header"
title = "☁️  AWS Cloud Configuration"
type = "section_header"

[[elements]]
help = "Your AWS IAM Access Key ID for authentication"
name = "aws_access_key_id"
nickel_path = ["provider", "aws_access_key_id"]
prompt = "AWS Access Key ID"
required = true
type = "text"

[[elements]]
help = "Your AWS IAM Secret Access Key (will be masked)"
name = "aws_secret_access_key"
nickel_path = ["provider", "aws_secret_access_key"]
prompt = "AWS Secret Access Key"
required = true
type = "password"

[[elements]]
default = "us-east-1"
help = "AWS region where resources will be deployed"
name = "aws_region"
nickel_path = ["provider", "aws_region"]
options = [
  { value = "us-east-1", label = "US East (N. Virginia)" },
  { value = "us-east-2", label = "US East (Ohio)" },
  { value = "us-west-1", label = "US West (N. California)" },
  { value = "us-west-2", label = "US West (Oregon)" },
  { value = "eu-west-1", label = "Europe (Ireland)" },
  { value = "eu-west-2", label = "Europe (London)" },
  { value = "eu-west-3", label = "Europe (Paris)" },
  { value = "eu-central-1", label = "Europe (Frankfurt)" },
  { value = "eu-north-1", label = "Europe (Stockholm)" },
  { value = "ap-northeast-1", label = "Asia Pacific (Tokyo)" },
  { value = "ap-northeast-2", label = "Asia Pacific (Seoul)" },
  { value = "ap-northeast-3", label = "Asia Pacific (Osaka)" },
  { value = "ap-southeast-1", label = "Asia Pacific (Singapore)" },
  { value = "ap-southeast-2", label = "Asia Pacific (Sydney)" },
  { value = "ap-south-1", label = "Asia Pacific (Mumbai)" },
  { value = "sa-east-1", label = "South America (São Paulo)" },
  { value = "ca-central-1", label = "Canada (Central)" },
]
prompt = "AWS Region"
required = true
type = "select"

[[elements]]
default = "t3.medium"
help = "EC2 instance type (determines CPU, RAM, and pricing)"
name = "aws_instance_type"
nickel_path = ["provider", "aws_instance_type"]
options = [
  { value = "t3.micro", label = "t3.micro - 2 vCPU, 1 GB RAM (Free tier)" },
  { value = "t3.small", label = "t3.small - 2 vCPU, 2 GB RAM" },
  { value = "t3.medium", label = "t3.medium - 2 vCPU, 4 GB RAM" },
  { value = "t3.large", label = "t3.large - 2 vCPU, 8 GB RAM" },
  { value = "t3.xlarge", label = "t3.xlarge - 4 vCPU, 16 GB RAM" },
  { value = "t3.2xlarge", label = "t3.2xlarge - 8 vCPU, 32 GB RAM" },
  { value = "m5.large", label = "m5.large - 2 vCPU, 8 GB RAM" },
  { value = "m5.xlarge", label = "m5.xlarge - 4 vCPU, 16 GB RAM" },
  { value = "m5.2xlarge", label = "m5.2xlarge - 8 vCPU, 32 GB RAM" },
  { value = "m5.4xlarge", label = "m5.4xlarge - 16 vCPU, 64 GB RAM" },
  { value = "c5.large", label = "c5.large - 2 vCPU, 4 GB RAM (compute optimized)" },
  { value = "c5.xlarge", label = "c5.xlarge - 4 vCPU, 8 GB RAM (compute optimized)" },
  { value = "r5.large", label = "r5.large - 2 vCPU, 16 GB RAM (memory optimized)" },
  { value = "r5.xlarge", label = "r5.xlarge - 4 vCPU, 32 GB RAM (memory optimized)" },
]
prompt = "EC2 Instance Type"
required = true
type = "select"

[[elements]]
default = "ami-ubuntu-24-04"
help = "Operating system image for EC2 instances"
name = "aws_ami"
nickel_path = ["provider", "aws_ami"]
options = [
  { value = "ami-ubuntu-24-04", label = "Ubuntu 24.04 LTS (Latest)" },
  { value = "ami-ubuntu-22-04", label = "Ubuntu 22.04 LTS" },
  { value = "ami-ubuntu-20-04", label = "Ubuntu 20.04 LTS" },
  { value = "ami-debian-12", label = "Debian 12 (Bookworm)" },
  { value = "ami-debian-11", label = "Debian 11 (Bullseye)" },
  { value = "ami-amazon-linux-2", label = "Amazon Linux 2" },
  { value = "ami-amazon-linux-2023", label = "Amazon Linux 2023" },
]
prompt = "Amazon Machine Image (AMI)"
required = true
type = "select"

[[elements]]
default = "10.0.0.0/16"
help = "CIDR block for the VPC (e.g., 10.0.0.0/16)"
name = "aws_vpc_cidr"
nickel_path = ["provider", "aws_vpc_cidr"]
prompt = "VPC CIDR Block"
required = true
type = "text"

[[elements]]
default = "10.0.1.0/24"
help = "CIDR block for the subnet (e.g., 10.0.1.0/24)"
name = "aws_subnet_cidr"
nickel_path = ["provider", "aws_subnet_cidr"]
prompt = "Subnet CIDR Block"
required = true
type = "text"

[[elements]]
help = "Name of the EC2 SSH key pair for instance access"
name = "aws_ssh_key_name"
nickel_path = ["provider", "aws_ssh_key_name"]
prompt = "SSH Key Pair Name"
required = true
type = "text"
