size.go

24 lines
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
package platform

// Size represents a server size tier.
// Use these constants instead of provider-specific instance types.
type Size string

// Supported server size tiers with approximate resource allocations.
const (
	// Micro is 1 vCPU, 1GB RAM — suited for dev/testing.
	Micro Size = "micro"
	// Small is 1 vCPU, 2GB RAM — suited for small apps.
	Small Size = "small"
	// Medium is 2 vCPU, 4GB RAM — suited for standard apps.
	Medium Size = "medium"
	// Large is 4 vCPU, 8GB RAM — suited for larger workloads.
	Large Size = "large"
	// XLarge is 8 vCPU, 16GB RAM — suited for high performance.
	XLarge Size = "xlarge"
)

// AllSizes returns all supported sizes.
func AllSizes() []Size {
	return []Size{Micro, Small, Medium, Large, XLarge}
}