UVAP
  • Key Features
  • Feature Demos
  • Installation
  • Developer Guide
  • Operation Guide
  • Tutorials
  • Help
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// This proto describes the overall configuration schemes of UVAP microservices
//

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; ///< SASL Authentication user name. Can be empty.
  string password = 3; ///< SASL Authentication password. Can be empty.
}

/**
 * Multiple AuthDef instances
 */
message AuthDefs
{
  repeated AuthDef auth_defs = 1; ///< I haven't found any other way.
}

/**
 * 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; ///< SASL Authentication user name. Can be empty.
  string password = 4; ///< SASL Authentication password. Can be empty.
  string auth_ref = 5; ///< References to an AuthDef by its id. Must not be set if user_name or password is non-empty.
}

/**
 * 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; ///< Delete target topic before sending messages.
    CHECK_TS = 2; ///< Raise error if topic contains message with newer or equal timestamp.
    SKIP_TS = 3; ///< Skip messages in target topic with older or equal timestamps.
  }
  Handling handling = 1; ///< Controls how conflicting timestamps are handled when writing to an existing topic.
}

/**
 * Tracker Microservice Configuration
 */
message TrackerMSConfig
{
  SourceTopicOptions source_options = 1; ///< Optional. Options for opening source topics.
  Topic source = 2; ///< Source topic

  TargetTopicOptions target_options = 3; ///< Options for opening target topic.
  Topic target = 4; ///< Target topic

  TrackingConfigRecord config_data = 5; ///< Functional configuration.
}

/**
 * Pass Detector Microservice Configuration
 */
message PassDetectorMSConfig
{
  SourceTopicOptions source_options = 1; ///< Optional. Options for opening source topics.
  Topic source = 2; ///< Source topic

  TargetTopicOptions target_options = 3; ///< Options for opening target topic.
  Topic target = 4; ///< Target topic

  PassDetConfigRecord config_data = 5; ///< Functional configuration.
}

/** Feature Vector Clustering Microservice Configuration */
message FeatureVectorClusteringMSConfig
{
  SourceTopicOptions source_options = 1; ///< Optional. Options for opening source topics.
  repeated Topic sources = 2; ///< Source topics

  TargetTopicOptions target_options = 3; ///< Options for opening target topic.
  Topic target = 4; ///< Target topic

  Topic internal_state = 5; ///< Internal state topic

  FVClusteringConfigRecord config_data = 6; ///< Functional configuration.
}

/**
 * Reidentification Microservice Configuration
 */
message ReidMSConfig
{
  SourceTopicOptions source_options = 1; ///< Optional. Options for opening source camera and person stream topics.
  repeated Topic sources = 2; ///< List of camera and person stream topics.

  TargetTopicOptions target_options = 3; ///< Options for opening target topic.
  Topic target = 4; ///< Target topic

  Topic internal_state = 5; ///< Internal state topic

  ReidConfigRecord config_data = 6; ///< Functional configuration.
}

/**
 * Detection Filter Microservice Configuration
 */
message DetectionFilterMSConfig
{
  SourceTopicOptions source_options = 1; ///< Optional. Options for opening source topics.
  Topic source = 2; ///< Source topic

  TargetTopicOptions target_options = 3; ///< Options for opening target topic.
  Topic target = 4; ///< Target topic

  DetectionFilterConfigRecord config_data = 5; ///< Functional configuration.
}

/**
 * Video Capture Microservice Configuration
 */
message VideoCaptureMSConfig
{
  repeated Topic targets = 4; ///< Target topics

  VideoCaptureConfigRecord config_data = 5; ///< Functional configuration.
}

Help
UVAP License TermsGlossaryTypographic ConventionsTrademark InformationSupport
Navigation
Key FeaturesFeature DemosInstallationDeveloper GuideTutorialsHelp
Community
GitHubFacebookLinkedInTwitterYouTube
Ultinous
Copyright © 2019-2020 Ultinous