Skip to content

Commit 4af94d0

Browse files
authored
protos: added metadata to remote-files (#351)
1 parent 7ac5aa1 commit 4af94d0

8 files changed

Lines changed: 760 additions & 317 deletions

File tree

go/gen/sift/remote_files/v1/remote_files.pb.go

Lines changed: 295 additions & 262 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go/gen/sift/remote_files/v1/remote_files_vtproto.pb.go

Lines changed: 357 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

protos/sift/remote_files/v1/remote_files.proto

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import "google/api/field_behavior.proto";
77
import "google/protobuf/field_mask.proto";
88
import "google/protobuf/timestamp.proto";
99
import "protoc-gen-openapiv2/options/annotations.proto";
10+
import "sift/metadata/v1/metadata.proto";
1011

1112
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
1213
info: {title: "RemoteFile service"}
@@ -106,6 +107,7 @@ message RemoteFile {
106107
string modified_by_user_id = 14 [(google.api.field_behavior) = REQUIRED];
107108
google.protobuf.Timestamp created_date = 15 [(google.api.field_behavior) = REQUIRED];
108109
google.protobuf.Timestamp modified_date = 16 [(google.api.field_behavior) = REQUIRED];
110+
repeated sift.metadata.v1.MetadataValue metadata_values = 18 [(google.api.field_behavior) = OPTIONAL];
109111
}
110112

111113
message VideoMetadata {
@@ -158,7 +160,7 @@ message ListRemoteFilesRequest {
158160
string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
159161

160162
// A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
161-
// Available fields to filter by are `remote_file_id`, `entity_id`, `entity_type`, and `file_name`.
163+
// Available fields to filter by are `remote_file_id`, `entity_id`, `entity_type`, `metadata`, and `file_name`.
162164
// For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).
163165
// For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/remote_files#remotefile). Optional.
164166
string filter = 3 [(google.api.field_behavior) = OPTIONAL];
@@ -193,6 +195,9 @@ message CreateRemoteFileRequest {
193195

194196
// A custom UUID used to generate the object key. Recommended to be left unset.
195197
optional string custom_uuid = 11 [(google.api.field_behavior) = OPTIONAL];
198+
199+
// The metadata values associated with this remote file.
200+
repeated sift.metadata.v1.MetadataValue metadata_values = 13 [(google.api.field_behavior) = OPTIONAL];
196201
}
197202

198203
// The response for a call to `RemoteFileService_CreateRemoteFile`.
@@ -222,7 +227,7 @@ message UpdateRemoteFileRequest {
222227
// The remote file to update.
223228
RemoteFile remote_file = 1 [(google.api.field_behavior) = REQUIRED];
224229

225-
// The list of fields to be updated. The fields available to be updated are `description` and `metadata`.
230+
// The list of fields to be updated. The fields available to be updated are `description`, `metadata_values`, and `metadata`.
226231
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
227232
}
228233

python/lib/sift/remote_files/v1/remote_files_pb2.py

Lines changed: 46 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

python/lib/sift/remote_files/v1/remote_files_pb2.pyi

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import google.protobuf.internal.containers
1111
import google.protobuf.internal.enum_type_wrapper
1212
import google.protobuf.message
1313
import google.protobuf.timestamp_pb2
14+
import sift.metadata.v1.metadata_pb2
1415
import sys
1516
import typing
1617

@@ -65,6 +66,7 @@ class RemoteFile(google.protobuf.message.Message):
6566
MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int
6667
CREATED_DATE_FIELD_NUMBER: builtins.int
6768
MODIFIED_DATE_FIELD_NUMBER: builtins.int
69+
METADATA_VALUES_FIELD_NUMBER: builtins.int
6870
remote_file_id: builtins.str
6971
organization_id: builtins.str
7072
entity_id: builtins.str
@@ -87,6 +89,8 @@ class RemoteFile(google.protobuf.message.Message):
8789
def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
8890
@property
8991
def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
92+
@property
93+
def metadata_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: ...
9094
def __init__(
9195
self,
9296
*,
@@ -107,9 +111,10 @@ class RemoteFile(google.protobuf.message.Message):
107111
modified_by_user_id: builtins.str = ...,
108112
created_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
109113
modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
114+
metadata_values: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ...,
110115
) -> None: ...
111116
def HasField(self, field_name: typing.Literal["_description", b"_description", "audio_metadata", b"audio_metadata", "created_date", b"created_date", "description", b"description", "image_metadata", b"image_metadata", "metadata", b"metadata", "modified_date", b"modified_date", "video_metadata", b"video_metadata"]) -> builtins.bool: ...
112-
def ClearField(self, field_name: typing.Literal["_description", b"_description", "audio_metadata", b"audio_metadata", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "entity_id", b"entity_id", "entity_type", b"entity_type", "file_content_encoding", b"file_content_encoding", "file_mime_type", b"file_mime_type", "file_name", b"file_name", "file_size", b"file_size", "image_metadata", b"image_metadata", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id", "remote_file_id", b"remote_file_id", "storage_key", b"storage_key", "video_metadata", b"video_metadata"]) -> None: ...
117+
def ClearField(self, field_name: typing.Literal["_description", b"_description", "audio_metadata", b"audio_metadata", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "entity_id", b"entity_id", "entity_type", b"entity_type", "file_content_encoding", b"file_content_encoding", "file_mime_type", b"file_mime_type", "file_name", b"file_name", "file_size", b"file_size", "image_metadata", b"image_metadata", "metadata", b"metadata", "metadata_values", b"metadata_values", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id", "remote_file_id", b"remote_file_id", "storage_key", b"storage_key", "video_metadata", b"video_metadata"]) -> None: ...
113118
@typing.overload
114119
def WhichOneof(self, oneof_group: typing.Literal["_description", b"_description"]) -> typing.Literal["description"] | None: ...
115120
@typing.overload
@@ -240,7 +245,7 @@ class ListRemoteFilesRequest(google.protobuf.message.Message):
240245
"""
241246
filter: builtins.str
242247
"""A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
243-
Available fields to filter by are `remote_file_id`, `entity_id`, `entity_type`, and `file_name`.
248+
Available fields to filter by are `remote_file_id`, `entity_id`, `entity_type`, `metadata`, and `file_name`.
244249
For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).
245250
For more information about the fields used for filtering, please refer to [this definition](/docs/api/grpc/protocol-buffers/remote_files#remotefile). Optional.
246251
"""
@@ -297,6 +302,7 @@ class CreateRemoteFileRequest(google.protobuf.message.Message):
297302
IMAGE_METADATA_FIELD_NUMBER: builtins.int
298303
AUDIO_METADATA_FIELD_NUMBER: builtins.int
299304
CUSTOM_UUID_FIELD_NUMBER: builtins.int
305+
METADATA_VALUES_FIELD_NUMBER: builtins.int
300306
file_name: builtins.str
301307
entity_id: builtins.str
302308
entity_type: global___EntityType.ValueType
@@ -314,6 +320,10 @@ class CreateRemoteFileRequest(google.protobuf.message.Message):
314320
def image_metadata(self) -> global___ImageMetadata: ...
315321
@property
316322
def audio_metadata(self) -> global___AudioMetadata: ...
323+
@property
324+
def metadata_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]:
325+
"""The metadata values associated with this remote file."""
326+
317327
def __init__(
318328
self,
319329
*,
@@ -329,9 +339,10 @@ class CreateRemoteFileRequest(google.protobuf.message.Message):
329339
image_metadata: global___ImageMetadata | None = ...,
330340
audio_metadata: global___AudioMetadata | None = ...,
331341
custom_uuid: builtins.str | None = ...,
342+
metadata_values: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ...,
332343
) -> None: ...
333344
def HasField(self, field_name: typing.Literal["_custom_uuid", b"_custom_uuid", "_description", b"_description", "audio_metadata", b"audio_metadata", "custom_uuid", b"custom_uuid", "description", b"description", "image_metadata", b"image_metadata", "metadata", b"metadata", "video_metadata", b"video_metadata"]) -> builtins.bool: ...
334-
def ClearField(self, field_name: typing.Literal["_custom_uuid", b"_custom_uuid", "_description", b"_description", "audio_metadata", b"audio_metadata", "custom_uuid", b"custom_uuid", "description", b"description", "entity_id", b"entity_id", "entity_type", b"entity_type", "file_content_encoding", b"file_content_encoding", "file_mime_type", b"file_mime_type", "file_name", b"file_name", "file_size", b"file_size", "image_metadata", b"image_metadata", "metadata", b"metadata", "organization_id", b"organization_id", "video_metadata", b"video_metadata"]) -> None: ...
345+
def ClearField(self, field_name: typing.Literal["_custom_uuid", b"_custom_uuid", "_description", b"_description", "audio_metadata", b"audio_metadata", "custom_uuid", b"custom_uuid", "description", b"description", "entity_id", b"entity_id", "entity_type", b"entity_type", "file_content_encoding", b"file_content_encoding", "file_mime_type", b"file_mime_type", "file_name", b"file_name", "file_size", b"file_size", "image_metadata", b"image_metadata", "metadata", b"metadata", "metadata_values", b"metadata_values", "organization_id", b"organization_id", "video_metadata", b"video_metadata"]) -> None: ...
335346
@typing.overload
336347
def WhichOneof(self, oneof_group: typing.Literal["_custom_uuid", b"_custom_uuid"]) -> typing.Literal["custom_uuid"] | None: ...
337348
@typing.overload
@@ -435,7 +446,7 @@ class UpdateRemoteFileRequest(google.protobuf.message.Message):
435446

436447
@property
437448
def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
438-
"""The list of fields to be updated. The fields available to be updated are `description` and `metadata`."""
449+
"""The list of fields to be updated. The fields available to be updated are `description`, `metadata_values`, and `metadata`."""
439450

440451
def __init__(
441452
self,

rust/crates/sift_rs/src/gen/sift.remote_files.v1.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ pub struct RemoteFile {
3131
pub created_date: ::core::option::Option<::pbjson_types::Timestamp>,
3232
#[prost(message, optional, tag="16")]
3333
pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>,
34+
#[prost(message, repeated, tag="18")]
35+
pub metadata_values: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
3436
#[prost(oneof="remote_file::Metadata", tags="11, 12, 17")]
3537
pub metadata: ::core::option::Option<remote_file::Metadata>,
3638
}
@@ -128,6 +130,8 @@ pub struct CreateRemoteFileRequest {
128130
pub organization_id: ::prost::alloc::string::String,
129131
#[prost(string, optional, tag="11")]
130132
pub custom_uuid: ::core::option::Option<::prost::alloc::string::String>,
133+
#[prost(message, repeated, tag="13")]
134+
pub metadata_values: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
131135
#[prost(oneof="create_remote_file_request::Metadata", tags="9, 10, 12")]
132136
pub metadata: ::core::option::Option<create_remote_file_request::Metadata>,
133137
}

rust/crates/sift_rs/src/gen/sift.remote_files.v1.serde.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,9 @@ impl serde::Serialize for CreateRemoteFileRequest {
308308
if self.custom_uuid.is_some() {
309309
len += 1;
310310
}
311+
if !self.metadata_values.is_empty() {
312+
len += 1;
313+
}
311314
if self.metadata.is_some() {
312315
len += 1;
313316
}
@@ -342,6 +345,9 @@ impl serde::Serialize for CreateRemoteFileRequest {
342345
if let Some(v) = self.custom_uuid.as_ref() {
343346
struct_ser.serialize_field("customUuid", v)?;
344347
}
348+
if !self.metadata_values.is_empty() {
349+
struct_ser.serialize_field("metadataValues", &self.metadata_values)?;
350+
}
345351
if let Some(v) = self.metadata.as_ref() {
346352
match v {
347353
create_remote_file_request::Metadata::VideoMetadata(v) => {
@@ -382,6 +388,8 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
382388
"organizationId",
383389
"custom_uuid",
384390
"customUuid",
391+
"metadata_values",
392+
"metadataValues",
385393
"video_metadata",
386394
"videoMetadata",
387395
"image_metadata",
@@ -401,6 +409,7 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
401409
Description,
402410
OrganizationId,
403411
CustomUuid,
412+
MetadataValues,
404413
VideoMetadata,
405414
ImageMetadata,
406415
AudioMetadata,
@@ -434,6 +443,7 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
434443
"description" => Ok(GeneratedField::Description),
435444
"organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId),
436445
"customUuid" | "custom_uuid" => Ok(GeneratedField::CustomUuid),
446+
"metadataValues" | "metadata_values" => Ok(GeneratedField::MetadataValues),
437447
"videoMetadata" | "video_metadata" => Ok(GeneratedField::VideoMetadata),
438448
"imageMetadata" | "image_metadata" => Ok(GeneratedField::ImageMetadata),
439449
"audioMetadata" | "audio_metadata" => Ok(GeneratedField::AudioMetadata),
@@ -465,6 +475,7 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
465475
let mut description__ = None;
466476
let mut organization_id__ = None;
467477
let mut custom_uuid__ = None;
478+
let mut metadata_values__ = None;
468479
let mut metadata__ = None;
469480
while let Some(k) = map_.next_key()? {
470481
match k {
@@ -524,6 +535,12 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
524535
}
525536
custom_uuid__ = map_.next_value()?;
526537
}
538+
GeneratedField::MetadataValues => {
539+
if metadata_values__.is_some() {
540+
return Err(serde::de::Error::duplicate_field("metadataValues"));
541+
}
542+
metadata_values__ = Some(map_.next_value()?);
543+
}
527544
GeneratedField::VideoMetadata => {
528545
if metadata__.is_some() {
529546
return Err(serde::de::Error::duplicate_field("videoMetadata"));
@@ -557,6 +574,7 @@ impl<'de> serde::Deserialize<'de> for CreateRemoteFileRequest {
557574
description: description__,
558575
organization_id: organization_id__.unwrap_or_default(),
559576
custom_uuid: custom_uuid__,
577+
metadata_values: metadata_values__.unwrap_or_default(),
560578
metadata: metadata__,
561579
})
562580
}
@@ -1689,6 +1707,9 @@ impl serde::Serialize for RemoteFile {
16891707
if self.modified_date.is_some() {
16901708
len += 1;
16911709
}
1710+
if !self.metadata_values.is_empty() {
1711+
len += 1;
1712+
}
16921713
if self.metadata.is_some() {
16931714
len += 1;
16941715
}
@@ -1738,6 +1759,9 @@ impl serde::Serialize for RemoteFile {
17381759
if let Some(v) = self.modified_date.as_ref() {
17391760
struct_ser.serialize_field("modifiedDate", v)?;
17401761
}
1762+
if !self.metadata_values.is_empty() {
1763+
struct_ser.serialize_field("metadataValues", &self.metadata_values)?;
1764+
}
17411765
if let Some(v) = self.metadata.as_ref() {
17421766
match v {
17431767
remote_file::Metadata::VideoMetadata(v) => {
@@ -1788,6 +1812,8 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
17881812
"createdDate",
17891813
"modified_date",
17901814
"modifiedDate",
1815+
"metadata_values",
1816+
"metadataValues",
17911817
"video_metadata",
17921818
"videoMetadata",
17931819
"image_metadata",
@@ -1812,6 +1838,7 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
18121838
ModifiedByUserId,
18131839
CreatedDate,
18141840
ModifiedDate,
1841+
MetadataValues,
18151842
VideoMetadata,
18161843
ImageMetadata,
18171844
AudioMetadata,
@@ -1850,6 +1877,7 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
18501877
"modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId),
18511878
"createdDate" | "created_date" => Ok(GeneratedField::CreatedDate),
18521879
"modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate),
1880+
"metadataValues" | "metadata_values" => Ok(GeneratedField::MetadataValues),
18531881
"videoMetadata" | "video_metadata" => Ok(GeneratedField::VideoMetadata),
18541882
"imageMetadata" | "image_metadata" => Ok(GeneratedField::ImageMetadata),
18551883
"audioMetadata" | "audio_metadata" => Ok(GeneratedField::AudioMetadata),
@@ -1886,6 +1914,7 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
18861914
let mut modified_by_user_id__ = None;
18871915
let mut created_date__ = None;
18881916
let mut modified_date__ = None;
1917+
let mut metadata_values__ = None;
18891918
let mut metadata__ = None;
18901919
while let Some(k) = map_.next_key()? {
18911920
match k {
@@ -1975,6 +2004,12 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
19752004
}
19762005
modified_date__ = map_.next_value()?;
19772006
}
2007+
GeneratedField::MetadataValues => {
2008+
if metadata_values__.is_some() {
2009+
return Err(serde::de::Error::duplicate_field("metadataValues"));
2010+
}
2011+
metadata_values__ = Some(map_.next_value()?);
2012+
}
19782013
GeneratedField::VideoMetadata => {
19792014
if metadata__.is_some() {
19802015
return Err(serde::de::Error::duplicate_field("videoMetadata"));
@@ -2013,6 +2048,7 @@ impl<'de> serde::Deserialize<'de> for RemoteFile {
20132048
modified_by_user_id: modified_by_user_id__.unwrap_or_default(),
20142049
created_date: created_date__,
20152050
modified_date: modified_date__,
2051+
metadata_values: metadata_values__.unwrap_or_default(),
20162052
metadata: metadata__,
20172053
})
20182054
}

rust/crates/sift_rs/src/gen/sift.test_reports.v1.tonic.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@ pub mod test_report_service_client {
8585
self.inner = self.inner.max_encoding_message_size(limit);
8686
self
8787
}
88-
/** Imports a test report from an already-uploaded file
89-
*/
9088
pub async fn import_test_report(
9189
&mut self,
9290
request: impl tonic::IntoRequest<super::ImportTestReportRequest>,
@@ -437,8 +435,6 @@ pub mod test_report_service_client {
437435
);
438436
self.inner.unary(req, path, codec).await
439437
}
440-
/** Creates multiple test measurements in a single request
441-
*/
442438
pub async fn create_test_measurements(
443439
&mut self,
444440
request: impl tonic::IntoRequest<super::CreateTestMeasurementsRequest>,
@@ -628,8 +624,6 @@ pub mod test_report_service_server {
628624
/// Generated trait containing gRPC methods that should be implemented for use with TestReportServiceServer.
629625
#[async_trait]
630626
pub trait TestReportService: Send + Sync + 'static {
631-
/** Imports a test report from an already-uploaded file
632-
*/
633627
async fn import_test_report(
634628
&self,
635629
request: tonic::Request<super::ImportTestReportRequest>,
@@ -727,8 +721,6 @@ pub mod test_report_service_server {
727721
tonic::Response<super::CreateTestMeasurementResponse>,
728722
tonic::Status,
729723
>;
730-
/** Creates multiple test measurements in a single request
731-
*/
732724
async fn create_test_measurements(
733725
&self,
734726
request: tonic::Request<super::CreateTestMeasurementsRequest>,

0 commit comments

Comments
 (0)