1syntax = "proto3";
2
3import "github.com/gogo/protobuf/gogoproto/gogo.proto";
4import "meta.proto";
5
6package sensu.core.v2;
7
8option go_package = "v2";
9option (gogoproto.populate_all) = true;
10option (gogoproto.equal_all) = true;
11option (gogoproto.marshaler_all) = true;
12option (gogoproto.unmarshaler_all) = true;
13option (gogoproto.sizer_all) = true;
14option (gogoproto.testgen_all) = true;
15
16// A Mutator is a mutator specification.
17message Mutator {
18  option (gogoproto.face) = true;
19  option (gogoproto.goproto_getters) = false;
20
21  // Metadata contains the name, namespace, labels and annotations of the mutator
22  ObjectMeta metadata = 1 [(gogoproto.jsontag) = "metadata,omitempty", (gogoproto.embed) = true, (gogoproto.nullable) = false];
23
24  // Command is the command to be executed.
25  string command = 2;
26
27  // Timeout is the command execution timeout in seconds.
28  uint32 timeout = 3 [(gogoproto.jsontag) = "timeout"];
29
30  // Env is a list of environment variables to use with command execution
31  repeated string env_vars = 4 [(gogoproto.jsontag) = "env_vars"];
32
33  // RuntimeAssets are a list of assets required to execute a mutator.
34  repeated string runtime_assets = 8 [(gogoproto.jsontag) = "runtime_assets"];
35}
36