package models

// OVHVPS represents the structure of a VPS from OVH API
type OVHVPS struct {
	Cluster     string `json:"cluster"`
	DisplayName string `json:"displayName"`
	IAM         struct {
		DisplayName string            `json:"displayName"`
		ID          string            `json:"id"`
		Tags        map[string]string `json:"tags"`
		URN         string            `json:"urn"`
	} `json:"iam"`
	Keymap             string   `json:"keymap"`
	MemoryLimit        int      `json:"memoryLimit"`
	Model              VPSModel `json:"model"`
	MonitoringIpBlocks []string `json:"monitoringIpBlocks"`
	Name               string   `json:"name"`
	NetbootMode        string   `json:"netbootMode"`
	OfferType          string   `json:"offerType"`
	SLAMonitoring      bool     `json:"slaMonitoring"`
	State              string   `json:"state"`
	VCore              int      `json:"vcore"`
	Zone               string   `json:"zone"`
	ZoneType           string   `json:"zoneType"`
}

// VPSModel represents the model details of an OVH VPS
type VPSModel struct {
	AvailableOptions     []string `json:"availableOptions"`
	Datacenter           []string `json:"datacenter"`
	Disk                 int      `json:"disk"`
	MaximumAdditionnalIp int      `json:"maximumAdditionnalIp"`
	Memory               int      `json:"memory"`
	Name                 string   `json:"name"`
	Offer                string   `json:"offer"`
	VCore                int      `json:"vcore"`
	Version              string   `json:"version"`
}
