syntax = "proto3";

package akash.inventory.v1;

import "gogoproto/gogo.proto";
import "akash/inventory/v1/resourcepair.proto";

option go_package = "github.com/akash-network/akash-api/go/inventory/v1";

// MemoryInfo reports Memory details
message MemoryInfo {
  string vendor = 1 [
    (gogoproto.customname)   = "Vendor",
    (gogoproto.jsontag)      = "vendor",
    (gogoproto.moretags)     = "yaml:\"vendor\""
  ];
  string type = 2 [
    (gogoproto.customname)   = "Type",
    (gogoproto.jsontag)      = "type",
    (gogoproto.moretags)     = "yaml:\"type\""
  ];
  string total_size = 3 [
    (gogoproto.customname)   = "TotalSize",
    (gogoproto.jsontag)      = "total_size",
    (gogoproto.moretags)     = "yaml:\"total_size\""
  ];
  string speed = 4 [
    (gogoproto.customname)   = "Speed",
    (gogoproto.jsontag)      = "speed",
    (gogoproto.moretags)     = "yaml:\"speed\""
  ];
}

// Memory reports Memory inventory details
message Memory {
  ResourcePair quantity = 1 [
    (gogoproto.nullable)     = false,
    (gogoproto.customname)   = "Quantity",
    (gogoproto.jsontag)      = "quantity",
    (gogoproto.moretags)     = "yaml:\"quantity\""
  ];

  repeated MemoryInfo info = 2 [
    (gogoproto.nullable)     = false,
    (gogoproto.castrepeated) = "MemoryInfoS",
    (gogoproto.customname)   = "Info",
    (gogoproto.jsontag)      = "info",
    (gogoproto.moretags)     = "yaml:\"info\""
  ];
}
