// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package test_platform.multibot;

import "test_platform/phosphorus/prejob.proto";
import "test_platform/multibot/common.proto";
import "test_platform/request.proto";

// External API for requesting a multi-bot job
message LeaderRequest {

  // What test to run with the multi-bot task
  test_platform.Request.Test payload = 1;

  // What attributes to require and provision for follower tasks
  repeated FollowerSpec follower_specs = 2;
}

// Internal per-bot request for follower task
message FollowerRequest {
  // Pubsub subscription to use for this follower task (pre-existing)
  string subscription_name = 1;

  // Attribute filter to apply to judge whether incoming messages are 'for you'
  map<string, string> incoming_filter = 2;

  // Attributes to apply to outgoing messages to address them to the leader
  map<string, string> outgoing_attributes = 3;

  // Prejob request parameters
  phosphorus.PrejobRequest prejob = 4;
}
