syntax = "proto3"; package model; import "google/protobuf/timestamp.proto"; option go_package = "github.com/densify-dev/container-automation-model/model"; // KubexRecommendation is the top-level message for a recommendation. message KubexRecommendation { string name = 1; string kind = 2; string namespace = 3; repeated OwnerReference owner_references = 4; repeated Container containers = 5; } // Container represents the recommendation details for a single container within a workload. message Container { string container = 1; string entity_id = 2; string container_id = 3; bool automation_enabled = 4; bool suspend_automation = 5; google.protobuf.Timestamp suspended_on = 6; repeated string hpa_scaling_metrics = 7; RecommendedResources recommended_resources = 8; google.protobuf.Timestamp analyzed_on = 9; RecommendedResources current_resources = 10; OwnerSpecs owner_specs = 11; } // OwnerSpecs holds the specifications at the level of the pod owner. message OwnerSpecs { repeated RecommendedResources current_spec = 1; repeated RecommendedResources previous_spec = 2; google.protobuf.Timestamp spec_change_date = 3; } // RecommendedResources holds the request and limit values for a resource. message RecommendedResources { ResourceLimit request = 1; ResourceLimit limit = 2; } // ResourceLimit defines the CPU and Memory values. message ResourceLimit { string cpu = 1; string memory = 2; } // OwnerReference identifies the owner of a Kubernetes object. message OwnerReference { string name = 1; string kind = 2; }