syntax = "proto3";

package biopb.image;

option java_package = "biopb.image";
option java_multiple_files = true;

import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
import "biopb/image/image_data.proto";
import "biopb/image/detection_settings.proto";


message DetectionRequest {

    // Encapsulate all pixel data and associated metadata. In a streaming call,
    // this field is allowed to be null, which simply is a request to re-analyze
    // the last submitted image with the updated settings. If this is the first
    // call in a stream, the server will not return results, but simply update
    // and remember the settings.
    ImageData image_data = 1;


    // Other parameters associated with the request, such as score threshold
    // etc. In a streaming call, this field is allowed to be null, in which case
    // the server will use the setings of the previous request.
    DetectionSettings detection_settings = 2;


    // A field_mask to indicate the requested fields in the reply. Default is to
    // return the full response.
    google.protobuf.FieldMask field_mask = 3;


    // Optional kwargs for endpoint-specific parameters.
    // Arbitrary key-value pairs that can be passed to the server.
    google.protobuf.Struct kwargs = 4;

}
