syntax = "proto3";

package load.projects.tasklets.regression;

import "tasklet/api/tasklet.proto";
import "tasklet/services/ci/proto/ci.proto";
import "tasklet/services/yav/proto/yav.proto";
import "ci/tasklet/common/proto/service.proto";
import "load/projects/tasklets/shooting/proto/shooting.proto";

message Context {
    option (tasklet.context) = true;
    option (tasklet.py_adapter) = "tasklet.domain.adapter:Context";
    ci.CiService ci = 1 [(tasklet.inject) = true];
    yav_service.YavService yav = 2 [(tasklet.inject) = true];
}

message RegressionResult {
    bool success = 1;
}

message Input {
    ci.TaskletContext context = 1;
    shooting.ShootingResult shooting = 2;
    shooting.SandboxConfig sandbox = 3;
}

message Output {
    RegressionResult result = 1;
}

message Regression {
    option (tasklet.tasklet_interface) = true;

    Context ctx = 1;
    Input input = 2 [(tasklet.input) = true];
    Output output = 3 [(tasklet.output) = true];
}
