diff --git a/plugin/kaytu/compute_instance.go b/plugin/kaytu/compute_instance.go index 2c11927..f23be60 100644 --- a/plugin/kaytu/compute_instance.go +++ b/plugin/kaytu/compute_instance.go @@ -8,8 +8,17 @@ type GcpComputeInstance struct { MachineType string `json:"machineType"` } +type GcpComputeDisk struct { + HashedDiskId string `json:"hashedDiskId"` + Zone string `json:"zone"` + Region string `json:"region"` + DiskType string `json:"diskType"` + DiskSize *int32 `json:"diskSize"` +} + type RightsizingGcpComputeInstance struct { Zone string `json:"zone"` + Region string `json:"region"` MachineType string `json:"machineType"` MachineFamily string `json:"machineFamily"` CPU int64 `json:"cpu"` @@ -29,18 +38,38 @@ type GcpComputeInstanceRightsizingRecommendation struct { } type GcpComputeInstanceWastageRequest struct { - RequestId *string `json:"requestId"` - CliVersion *string `json:"cliVersion"` - Identification map[string]string `json:"identification"` - Instance GcpComputeInstance `json:"instance"` - Metrics map[string][]Datapoint `json:"metrics"` - Region string `json:"region"` - Preferences map[string]*string `json:"preferences"` - Loading bool `json:"loading"` + RequestId *string `json:"requestId"` + CliVersion *string `json:"cliVersion"` + Identification map[string]string `json:"identification"` + Instance GcpComputeInstance `json:"instance"` + Disks []GcpComputeDisk `json:"disks"` + Metrics map[string][]Datapoint `json:"metrics"` + DiskMetrics map[string]map[string][]Datapoint `json:"diskMetrics"` + Region string `json:"region"` + Preferences map[string]*string `json:"preferences"` + Loading bool `json:"loading"` +} + +type RightsizingGcpComputeDisk struct { + Zone string `json:"zone"` + Region string `json:"region"` + DiskType string `json:"diskType"` + DiskSize *int32 `json:"diskSize"` + Cost float64 `json:"cost"` +} + +type GcpComputeDiskRecommendation struct { + Current RightsizingGcpComputeDisk + Recommended *RightsizingGcpComputeDisk + + Size Usage `json:"size"` + + Description string `json:"description"` } type GcpComputeInstanceWastageResponse struct { - RightSizing GcpComputeInstanceRightsizingRecommendation `json:"rightSizing"` + RightSizing GcpComputeInstanceRightsizingRecommendation `json:"rightSizing"` + VolumeRightSizing map[string]GcpComputeDiskRecommendation `json:"volumes"` } type Datapoint struct {