@@ -432,6 +432,8 @@ class ClientAnnotation(google.protobuf.message.Message):
432432 POINT_MEASUREMENT_FIELD_NUMBER : builtins .int
433433 LONG_HORIZON_INSTRUCTION_FIELD_NUMBER : builtins .int
434434 SHORT_HORIZON_INSTRUCTION_FIELD_NUMBER : builtins .int
435+ DATA_SEGMENT_START_FIELD_NUMBER : builtins .int
436+ DATA_SEGMENT_END_FIELD_NUMBER : builtins .int
435437 @property
436438 def associated_server_ts (self ) -> google .protobuf .timestamp_pb2 .Timestamp :
437439 """
@@ -442,7 +444,7 @@ class ClientAnnotation(google.protobuf.message.Message):
442444 pass
443445 log_channel_id : typing .Text = ...
444446 """The channel ID this log message is associated with. If empty, it is
445- associated with the "device -data" channel.
447+ associated with the "command -data" channel.
446448 """
447449
448450 @property
@@ -461,6 +463,10 @@ class ClientAnnotation(google.protobuf.message.Message):
461463 def long_horizon_instruction (self ) -> global___TextAnnotation : ...
462464 @property
463465 def short_horizon_instruction (self ) -> global___TextAnnotation : ...
466+ @property
467+ def data_segment_start (self ) -> global___DataSegmentStart : ...
468+ @property
469+ def data_segment_end (self ) -> global___DataSegmentEnd : ...
464470 def __init__ (self ,
465471 * ,
466472 associated_server_ts : typing .Optional [google .protobuf .timestamp_pb2 .Timestamp ] = ...,
@@ -472,12 +478,109 @@ class ClientAnnotation(google.protobuf.message.Message):
472478 point_measurement : typing .Optional [global___PointMeasurement ] = ...,
473479 long_horizon_instruction : typing .Optional [global___TextAnnotation ] = ...,
474480 short_horizon_instruction : typing .Optional [global___TextAnnotation ] = ...,
481+ data_segment_start : typing .Optional [global___DataSegmentStart ] = ...,
482+ data_segment_end : typing .Optional [global___DataSegmentEnd ] = ...,
475483 ) -> None : ...
476- def HasField (self , field_name : typing_extensions .Literal ["associated_server_ts" ,b"associated_server_ts" ,"interval_end" ,b"interval_end" ,"interval_start" ,b"interval_start" ,"log_channel_id" ,b"log_channel_id" ,"log_type_oneof" ,b"log_type_oneof" ,"long_horizon_instruction" ,b"long_horizon_instruction" ,"point_measurement" ,b"point_measurement" ,"short_horizon_instruction" ,b"short_horizon_instruction" ,"snapshot_annotation" ,b"snapshot_annotation" ,"text_annotation" ,b"text_annotation" ]) -> builtins .bool : ...
477- def ClearField (self , field_name : typing_extensions .Literal ["associated_server_ts" ,b"associated_server_ts" ,"interval_end" ,b"interval_end" ,"interval_start" ,b"interval_start" ,"log_channel_id" ,b"log_channel_id" ,"log_type_oneof" ,b"log_type_oneof" ,"long_horizon_instruction" ,b"long_horizon_instruction" ,"point_measurement" ,b"point_measurement" ,"short_horizon_instruction" ,b"short_horizon_instruction" ,"snapshot_annotation" ,b"snapshot_annotation" ,"text_annotation" ,b"text_annotation" ]) -> None : ...
478- def WhichOneof (self , oneof_group : typing_extensions .Literal ["log_type_oneof" ,b"log_type_oneof" ]) -> typing .Optional [typing_extensions .Literal ["interval_start" ,"interval_end" ,"text_annotation" ,"snapshot_annotation" ,"point_measurement" ,"long_horizon_instruction" ,"short_horizon_instruction" ]]: ...
484+ def HasField (self , field_name : typing_extensions .Literal ["associated_server_ts" ,b"associated_server_ts" ,"data_segment_end" , b"data_segment_end" , "data_segment_start" , b"data_segment_start" , " interval_end" ,b"interval_end" ,"interval_start" ,b"interval_start" ,"log_channel_id" ,b"log_channel_id" ,"log_type_oneof" ,b"log_type_oneof" ,"long_horizon_instruction" ,b"long_horizon_instruction" ,"point_measurement" ,b"point_measurement" ,"short_horizon_instruction" ,b"short_horizon_instruction" ,"snapshot_annotation" ,b"snapshot_annotation" ,"text_annotation" ,b"text_annotation" ]) -> builtins .bool : ...
485+ def ClearField (self , field_name : typing_extensions .Literal ["associated_server_ts" ,b"associated_server_ts" ,"data_segment_end" , b"data_segment_end" , "data_segment_start" , b"data_segment_start" , " interval_end" ,b"interval_end" ,"interval_start" ,b"interval_start" ,"log_channel_id" ,b"log_channel_id" ,"log_type_oneof" ,b"log_type_oneof" ,"long_horizon_instruction" ,b"long_horizon_instruction" ,"point_measurement" ,b"point_measurement" ,"short_horizon_instruction" ,b"short_horizon_instruction" ,"snapshot_annotation" ,b"snapshot_annotation" ,"text_annotation" ,b"text_annotation" ]) -> None : ...
486+ def WhichOneof (self , oneof_group : typing_extensions .Literal ["log_type_oneof" ,b"log_type_oneof" ]) -> typing .Optional [typing_extensions .Literal ["interval_start" ,"interval_end" ,"text_annotation" ,"snapshot_annotation" ,"point_measurement" ,"long_horizon_instruction" ,"short_horizon_instruction" , "data_segment_start" , "data_segment_end" ]]: ...
479487global___ClientAnnotation = ClientAnnotation
480488
489+ class DataSegmentStart (google .protobuf .message .Message ):
490+ """DataSegmentStart marks the start of a data segment for data segmentation.
491+ Together, the space, task_code, and name in the content uniquely identifies
492+ a type of segment. Each segment's content also has a unique UUID that is
493+ used to ensure each start has an end, and may also be used to reference a
494+ segment uniquely.
495+
496+ The associated_server_ts field is REQUIRED, and must be the same as the
497+ start_server_ts in the corresponding DataSegmentEnd message.
498+ """
499+ DESCRIPTOR : google .protobuf .descriptor .Descriptor = ...
500+ CONTENT_FIELD_NUMBER : builtins .int
501+ @property
502+ def content (self ) -> global___DataSegmentContent : ...
503+ def __init__ (self ,
504+ * ,
505+ content : typing .Optional [global___DataSegmentContent ] = ...,
506+ ) -> None : ...
507+ def HasField (self , field_name : typing_extensions .Literal ["content" ,b"content" ]) -> builtins .bool : ...
508+ def ClearField (self , field_name : typing_extensions .Literal ["content" ,b"content" ]) -> None : ...
509+ global___DataSegmentStart = DataSegmentStart
510+
511+ class DataSegmentEnd (google .protobuf .message .Message ):
512+ """DataSegmentEnd marks the end of a data segment for data segmentation.
513+ Together, the space, task_code, and name in the content uniquely identifies
514+ a type of segment. Each segment's content also has a unique UUID that is
515+ used to ensure each start has an end, and may also be used to reference a
516+ segment uniquely.
517+ """
518+ DESCRIPTOR : google .protobuf .descriptor .Descriptor = ...
519+ CONTENT_FIELD_NUMBER : builtins .int
520+ START_SERVER_TS_FIELD_NUMBER : builtins .int
521+ @property
522+ def content (self ) -> global___DataSegmentContent :
523+ """Must be identical to the corresponding DataSegmentStart content."""
524+ pass
525+ @property
526+ def start_server_ts (self ) -> google .protobuf .timestamp_pb2 .Timestamp :
527+ """Start server timestamp of the data segment START marker. It must be
528+ the same as the associated_server_ts used in the DataSegmentStart marker.
529+ This is used so that a single DataSegmentEnd marker can fully specify the
530+ segment using server timestamps, making segmentation stateless.
531+ """
532+ pass
533+ def __init__ (self ,
534+ * ,
535+ content : typing .Optional [global___DataSegmentContent ] = ...,
536+ start_server_ts : typing .Optional [google .protobuf .timestamp_pb2 .Timestamp ] = ...,
537+ ) -> None : ...
538+ def HasField (self , field_name : typing_extensions .Literal ["content" ,b"content" ,"start_server_ts" ,b"start_server_ts" ]) -> builtins .bool : ...
539+ def ClearField (self , field_name : typing_extensions .Literal ["content" ,b"content" ,"start_server_ts" ,b"start_server_ts" ]) -> None : ...
540+ global___DataSegmentEnd = DataSegmentEnd
541+
542+ class DataSegmentContent (google .protobuf .message .Message ):
543+ """DataSegmentContent describes a data segment for data segmentation.
544+ Together, the space, task_code, and name in the content uniquely identifies
545+ a type of segment. Each segment's content also has a unique UUID that is
546+ used to ensure each start has an end, and may also be used to reference a
547+ segment uniquely.
548+ """
549+ DESCRIPTOR : google .protobuf .descriptor .Descriptor = ...
550+ SESSION_CHANNEL_ID_FIELD_NUMBER : builtins .int
551+ TASK_CODE_FIELD_NUMBER : builtins .int
552+ NAME_FIELD_NUMBER : builtins .int
553+ AGENT_ID_FIELD_NUMBER : builtins .int
554+ UUID_FIELD_NUMBER : builtins .int
555+ session_channel_id : typing .Text = ...
556+ """The log type for the session created for this data segment. Required."""
557+
558+ task_code : typing .Text = ...
559+ """The task code this segment is included in. Required."""
560+
561+ name : typing .Text = ...
562+ """A name for the segment. Required."""
563+
564+ agent_id : typing .Text = ...
565+ """The agent ID in control for this segment. Optional."""
566+
567+ uuid : typing .Text = ...
568+ """A UUID for the segment. Must be unique, and will match segment start
569+ to segment end, for data integrity. Required.
570+ """
571+
572+ def __init__ (self ,
573+ * ,
574+ session_channel_id : typing .Optional [typing .Text ] = ...,
575+ task_code : typing .Optional [typing .Text ] = ...,
576+ name : typing .Optional [typing .Text ] = ...,
577+ agent_id : typing .Optional [typing .Text ] = ...,
578+ uuid : typing .Optional [typing .Text ] = ...,
579+ ) -> None : ...
580+ def HasField (self , field_name : typing_extensions .Literal ["agent_id" ,b"agent_id" ,"name" ,b"name" ,"session_channel_id" ,b"session_channel_id" ,"task_code" ,b"task_code" ,"uuid" ,b"uuid" ]) -> builtins .bool : ...
581+ def ClearField (self , field_name : typing_extensions .Literal ["agent_id" ,b"agent_id" ,"name" ,b"name" ,"session_channel_id" ,b"session_channel_id" ,"task_code" ,b"task_code" ,"uuid" ,b"uuid" ]) -> None : ...
582+ global___DataSegmentContent = DataSegmentContent
583+
481584class IntervalStart (google .protobuf .message .Message ):
482585 """IntervalStart starts a named interval.
483586
0 commit comments