syntax = "proto3";

package schema;

// Collect information about running containers
message ContainerCollectorConfig {
  bool enabled = 1;
}

message ExecuteCollectorConfig {
  bool enabled = 1;

  // truncate argv/envp if cumulative length exceeds limit
  uint32 argv_limit = 2;
  uint32 envp_limit = 3;

  // If specified, only report the named environment variables.  An
  // empty envp_allowlist indicates that all environment variables
  // should be reported up to a cumulative total of envp_limit bytes.
  repeated string envp_allowlist = 4;
}

// Collect information about executable memory mappings.
message MemExecCollectorConfig {
  bool enabled = 1;
}

// Convey configuration information to Guest LSM
message ConfigurationRequest {
  ContainerCollectorConfig container_config = 1;
  ExecuteCollectorConfig execute_config = 2;
  MemExecCollectorConfig memexec_config = 3;

  // Additional configuration messages will be added as new collectors
  // are implemented
}

// Report success or failure of previous ConfigurationRequest
message ConfigurationResponse {
  enum ErrorCode {
    // Keep values in sync with
    // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
    NO_ERROR = 0;
    UNKNOWN = 2;
  }

  ErrorCode error = 1;
  string msg = 2;
  uint64 version = 3;         // Version of the LSM
  uint32 kernel_version = 4;  // LINUX_VERSION_CODE
}
