syntax = "proto3";
package ultinous.proto.kafka;
option java_package = "com.ultinous.proto.kafka";
option java_multiple_files = true;
import "ultinous/proto/common/kafka_config.proto";
/**
* Referencable username - password combination.
*/
message AuthDef
{
string id = 1;
string user_name = 2;
string password = 3;
}
/**
* Multiple AuthDef instances
*/
message AuthDefs
{
repeated AuthDef auth_defs = 1;
}
/**
* Basic connection parameters for a topic
*
* Please note that population of topics might be monitored in your system, so notification of a system
* administrator might be required before changing these setting schemas.
*/
message Topic
{
string broker_list = 1;
string name = 2;
string user_name = 3;
string password = 4;
string auth_ref = 5;
}
/**
* Opening and reading options for a source topic.
*/
message SourceTopicOptions
{
enum Start
{
START_BEGIN = 0;
START_DATETIME = 1;
START_NOW = 2;
START_END = 3;
}
enum End
{
END_NEVER = 0;
END_DATETIME = 1;
END_END = 2;
}
/**
* Kafka consumer group.
* If left empty an UUID will be generated.
* If not empty and the service is restarted, processing will continue from where it left.
*/
string consumer_group = 1;
Start start = 2;
/**
* Start time for when start == DATETIME.
* ISO-8601: Complete representation Extended format (opt. millisec and tz; opt. [T] time designator; opt. [:] time separator in tz).
* Examples:
* "2019-04-08T10:10:24.123"
* "2019-04-08 10:10:24.123 +01"
* "2019-04-08 10:10:24.123 +01:00"
* "2019-04-08 10:10:24.123 +0100"
* Note: Maximum year to set is 2037 (known limitation)
*/
string start_date_time = 3;
End end = 4;
/**
* End time for when end == DATETIME.
* ISO-8601: Complete representation Extended format (opt. millisec and tz; opt. [T] time designator; opt. [:] time separator in tz).
* Examples:
* "2019-04-08T10:10:24.123"
* "2019-04-08 10:10:24.123 +01"
* "2019-04-08 10:10:24.123 +01:00"
* "2019-04-08 10:10:24.123 +0100"
* Note: Maximum year to set is 2037 (known limitation)
*/
string end_date_time = 5;
int64 message_processing_latency_ms = 6; ///< Message processing latency. Must be nonnegative.
}
/**
* Opening and writing options for a target topic.
*/
message TargetTopicOptions
{
enum Handling
{
INVALID = 0;
REPLACE = 1;
CHECK_TS = 2;
SKIP_TS = 3;
}
Handling handling = 1;
}
/**
* Tracker Microservice Configuration
*/
message TrackerMSConfig
{
SourceTopicOptions source_options = 1;
Topic source = 2;
TargetTopicOptions target_options = 3;
Topic target = 4;
TrackingConfigRecord config_data = 5;
}
/**
* Pass Detector Microservice Configuration
*/
message PassDetectorMSConfig
{
SourceTopicOptions source_options = 1;
Topic source = 2;
TargetTopicOptions target_options = 3;
Topic target = 4;
PassDetConfigRecord config_data = 5;
}
/** Feature Vector Clustering Microservice Configuration */
message FeatureVectorClusteringMSConfig
{
SourceTopicOptions source_options = 1;
repeated Topic sources = 2;
TargetTopicOptions target_options = 3;
Topic target = 4;
Topic internal_state = 5;
FVClusteringConfigRecord config_data = 6;
}
/**
* Reidentification Microservice Configuration
*/
message ReidMSConfig
{
SourceTopicOptions source_options = 1;
repeated Topic sources = 2;
TargetTopicOptions target_options = 3;
Topic target = 4;
Topic internal_state = 5;
ReidConfigRecord config_data = 6;
}
/**
* Detection Filter Microservice Configuration
*/
message DetectionFilterMSConfig
{
SourceTopicOptions source_options = 1;
Topic source = 2;
TargetTopicOptions target_options = 3;
Topic target = 4;
DetectionFilterConfigRecord config_data = 5;
}
/**
* Video Capture Microservice Configuration
*/
message VideoCaptureMSConfig
{
repeated Topic targets = 4;
VideoCaptureConfigRecord config_data = 5;
}