diff --git a/connectors/airbyte/conn.go b/connectors/airbyte/conn.go index fbbca5e3..ad948c71 100644 --- a/connectors/airbyte/conn.go +++ b/connectors/airbyte/conn.go @@ -15,6 +15,7 @@ import ( ) type source struct { + adiomv1connect.UnimplementedConnectorServiceHandler dockerImage string config string diff --git a/connectors/dynamodb/conn.go b/connectors/dynamodb/conn.go index 68a92497..46b95ca3 100644 --- a/connectors/dynamodb/conn.go +++ b/connectors/dynamodb/conn.go @@ -24,6 +24,7 @@ import ( ) type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler client *client streamsClient *dynamodbstreams.Client spec string diff --git a/connectors/mongo/conn.go b/connectors/mongo/conn.go index 711ef5f1..3097b450 100644 --- a/connectors/mongo/conn.go +++ b/connectors/mongo/conn.go @@ -64,6 +64,7 @@ type buffer struct { } type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler client *mongo.Client settings ConnectorSettings @@ -326,6 +327,7 @@ func (c *conn) GetInfo(ctx context.Context, r *connect.Request[adiomv1.GetInfoRe LsnStream: true, MultiNamespacePlan: true, DefaultPlan: !c.settings.PerNamespaceStreams, + GetByIds: true, }, Sink: &adiomv1.Capabilities_Sink{ SupportedDataTypes: []adiomv1.DataType{adiomv1.DataType_DATA_TYPE_MONGO_BSON}, @@ -1046,3 +1048,48 @@ func maybeUnavailableError(err error) error { } return connect.NewError(connect.CodeInternal, err) } + +// GetByIds implements adiomv1connect.ConnectorServiceHandler. +func (c *conn) GetByIds(ctx context.Context, r *connect.Request[adiomv1.GetByIdsRequest]) (*connect.Response[adiomv1.GetByIdsResponse], error) { + col, _, ok := GetCol(c.client, r.Msg.GetNamespace()) + if !ok { + return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("namespace should be fully qualified")) + } + + // TODO: maybe use batch endpoint if we need to optimize + res := make([]*adiomv1.GetByIdsResponse_ResponseItem, len(r.Msg.GetIds())) + var eg errgroup.Group + for i, id := range r.Msg.GetIds() { + eg.Go(func() error { + if len(id.GetId()) < 1 { + res[i] = &adiomv1.GetByIdsResponse_ResponseItem{} + return nil + } + bv := id.GetId()[0] + rawVal := bson.RawValue{ + Type: bsontype.Type(bv.GetType()), + Value: bv.GetData(), + } + v, err := col.FindOne(ctx, bson.M{"_id": rawVal}).Raw() + if err != nil { + if errors.Is(err, mongo.ErrNoDocuments) { + res[i] = &adiomv1.GetByIdsResponse_ResponseItem{} + return nil + } + return fmt.Errorf("err in findone: %w", err) + } + res[i] = &adiomv1.GetByIdsResponse_ResponseItem{ + Data: v, + } + return nil + }) + } + + if err := eg.Wait(); err != nil { + return nil, connect.NewError(connect.CodeInternal, fmt.Errorf("err finding ids: %w", err)) + } + + return connect.NewResponse(&adiomv1.GetByIdsResponse{ + Data: res, + }), nil +} diff --git a/connectors/null/connector.go b/connectors/null/connector.go index 4b2ac085..f6cb27e8 100644 --- a/connectors/null/connector.go +++ b/connectors/null/connector.go @@ -21,6 +21,7 @@ import ( ) type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler id string logJson bool sleep time.Duration @@ -146,5 +147,10 @@ func (c *conn) WriteUpdates(ctx context.Context, r *connect.Request[adiomv1.Writ } func NewConn(id string, logJson bool, sleep time.Duration, sleepJitter time.Duration) adiomv1connect.ConnectorServiceHandler { - return &conn{id, logJson, sleep, sleepJitter} + return &conn{ + id: id, + logJson: logJson, + sleep: sleep, + sleepJitter: sleepJitter, + } } diff --git a/connectors/postgres/conn.go b/connectors/postgres/conn.go index d6b454d3..548ecc68 100644 --- a/connectors/postgres/conn.go +++ b/connectors/postgres/conn.go @@ -52,6 +52,7 @@ type PostgresSettings struct { } type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler replicationUrl string id uint64 c *pgxpool.Pool diff --git a/connectors/random/connector.go b/connectors/random/connector.go index a591e1ca..8be367af 100644 --- a/connectors/random/connector.go +++ b/connectors/random/connector.go @@ -19,6 +19,7 @@ import ( ) type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler settings ConnectorSettings docMap map[string]*IndexMap //map of locations to map of document IDs diff --git a/connectors/random/connv2.go b/connectors/random/connv2.go index 29d19600..44fffb16 100644 --- a/connectors/random/connv2.go +++ b/connectors/random/connv2.go @@ -20,6 +20,7 @@ import ( ) type connV2 struct { + adiomv1connect.UnimplementedConnectorServiceHandler payload map[string]any namespacePrefix string initialSource []byte diff --git a/connectors/s3vector/conn.go b/connectors/s3vector/conn.go index ac411bc1..467b4afb 100644 --- a/connectors/s3vector/conn.go +++ b/connectors/s3vector/conn.go @@ -22,6 +22,7 @@ import ( ) type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler client *s3vectors.Client bucketName *string vectorKey string diff --git a/connectors/testconn/connector.go b/connectors/testconn/connector.go index 3ec5e6ae..3c78f254 100644 --- a/connectors/testconn/connector.go +++ b/connectors/testconn/connector.go @@ -30,6 +30,7 @@ import ( ) type conn struct { + adiomv1connect.UnimplementedConnectorServiceHandler bootstrapPath string updatesPath string loop bool diff --git a/gen/adiom/v1/adiom.pb.go b/gen/adiom/v1/adiom.pb.go index 582ccaf2..22586080 100644 --- a/gen/adiom/v1/adiom.pb.go +++ b/gen/adiom/v1/adiom.pb.go @@ -25,7 +25,7 @@ var file_adiom_v1_adiom_proto_rawDesc = []byte{ 0x0a, 0x14, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xfc, 0x04, 0x0a, 0x10, 0x43, 0x6f, + 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xbf, 0x05, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, @@ -65,23 +65,27 @@ var file_adiom_v1_adiom_proto_rawDesc = []byte{ 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x53, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x53, 0x4e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x32, 0xbc, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xbc, 0x01, 0x0a, 0x10, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2d, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x64, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, - 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x47, + 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x64, + 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x64, 0x69, + 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, + 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2d, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x64, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x64, + 0x69, 0x6f, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_adiom_v1_adiom_proto_goTypes = []any{ @@ -93,18 +97,20 @@ var file_adiom_v1_adiom_proto_goTypes = []any{ (*ListDataRequest)(nil), // 5: adiom.v1.ListDataRequest (*StreamUpdatesRequest)(nil), // 6: adiom.v1.StreamUpdatesRequest (*StreamLSNRequest)(nil), // 7: adiom.v1.StreamLSNRequest - (*GetTransformInfoRequest)(nil), // 8: adiom.v1.GetTransformInfoRequest - (*GetTransformRequest)(nil), // 9: adiom.v1.GetTransformRequest - (*GetInfoResponse)(nil), // 10: adiom.v1.GetInfoResponse - (*GetNamespaceMetadataResponse)(nil), // 11: adiom.v1.GetNamespaceMetadataResponse - (*WriteDataResponse)(nil), // 12: adiom.v1.WriteDataResponse - (*WriteUpdatesResponse)(nil), // 13: adiom.v1.WriteUpdatesResponse - (*GeneratePlanResponse)(nil), // 14: adiom.v1.GeneratePlanResponse - (*ListDataResponse)(nil), // 15: adiom.v1.ListDataResponse - (*StreamUpdatesResponse)(nil), // 16: adiom.v1.StreamUpdatesResponse - (*StreamLSNResponse)(nil), // 17: adiom.v1.StreamLSNResponse - (*GetTransformInfoResponse)(nil), // 18: adiom.v1.GetTransformInfoResponse - (*GetTransformResponse)(nil), // 19: adiom.v1.GetTransformResponse + (*GetByIdsRequest)(nil), // 8: adiom.v1.GetByIdsRequest + (*GetTransformInfoRequest)(nil), // 9: adiom.v1.GetTransformInfoRequest + (*GetTransformRequest)(nil), // 10: adiom.v1.GetTransformRequest + (*GetInfoResponse)(nil), // 11: adiom.v1.GetInfoResponse + (*GetNamespaceMetadataResponse)(nil), // 12: adiom.v1.GetNamespaceMetadataResponse + (*WriteDataResponse)(nil), // 13: adiom.v1.WriteDataResponse + (*WriteUpdatesResponse)(nil), // 14: adiom.v1.WriteUpdatesResponse + (*GeneratePlanResponse)(nil), // 15: adiom.v1.GeneratePlanResponse + (*ListDataResponse)(nil), // 16: adiom.v1.ListDataResponse + (*StreamUpdatesResponse)(nil), // 17: adiom.v1.StreamUpdatesResponse + (*StreamLSNResponse)(nil), // 18: adiom.v1.StreamLSNResponse + (*GetByIdsResponse)(nil), // 19: adiom.v1.GetByIdsResponse + (*GetTransformInfoResponse)(nil), // 20: adiom.v1.GetTransformInfoResponse + (*GetTransformResponse)(nil), // 21: adiom.v1.GetTransformResponse } var file_adiom_v1_adiom_proto_depIdxs = []int32{ 0, // 0: adiom.v1.ConnectorService.GetInfo:input_type -> adiom.v1.GetInfoRequest @@ -115,20 +121,22 @@ var file_adiom_v1_adiom_proto_depIdxs = []int32{ 5, // 5: adiom.v1.ConnectorService.ListData:input_type -> adiom.v1.ListDataRequest 6, // 6: adiom.v1.ConnectorService.StreamUpdates:input_type -> adiom.v1.StreamUpdatesRequest 7, // 7: adiom.v1.ConnectorService.StreamLSN:input_type -> adiom.v1.StreamLSNRequest - 8, // 8: adiom.v1.TransformService.GetTransformInfo:input_type -> adiom.v1.GetTransformInfoRequest - 9, // 9: adiom.v1.TransformService.GetTransform:input_type -> adiom.v1.GetTransformRequest - 10, // 10: adiom.v1.ConnectorService.GetInfo:output_type -> adiom.v1.GetInfoResponse - 11, // 11: adiom.v1.ConnectorService.GetNamespaceMetadata:output_type -> adiom.v1.GetNamespaceMetadataResponse - 12, // 12: adiom.v1.ConnectorService.WriteData:output_type -> adiom.v1.WriteDataResponse - 13, // 13: adiom.v1.ConnectorService.WriteUpdates:output_type -> adiom.v1.WriteUpdatesResponse - 14, // 14: adiom.v1.ConnectorService.GeneratePlan:output_type -> adiom.v1.GeneratePlanResponse - 15, // 15: adiom.v1.ConnectorService.ListData:output_type -> adiom.v1.ListDataResponse - 16, // 16: adiom.v1.ConnectorService.StreamUpdates:output_type -> adiom.v1.StreamUpdatesResponse - 17, // 17: adiom.v1.ConnectorService.StreamLSN:output_type -> adiom.v1.StreamLSNResponse - 18, // 18: adiom.v1.TransformService.GetTransformInfo:output_type -> adiom.v1.GetTransformInfoResponse - 19, // 19: adiom.v1.TransformService.GetTransform:output_type -> adiom.v1.GetTransformResponse - 10, // [10:20] is the sub-list for method output_type - 0, // [0:10] is the sub-list for method input_type + 8, // 8: adiom.v1.ConnectorService.GetByIds:input_type -> adiom.v1.GetByIdsRequest + 9, // 9: adiom.v1.TransformService.GetTransformInfo:input_type -> adiom.v1.GetTransformInfoRequest + 10, // 10: adiom.v1.TransformService.GetTransform:input_type -> adiom.v1.GetTransformRequest + 11, // 11: adiom.v1.ConnectorService.GetInfo:output_type -> adiom.v1.GetInfoResponse + 12, // 12: adiom.v1.ConnectorService.GetNamespaceMetadata:output_type -> adiom.v1.GetNamespaceMetadataResponse + 13, // 13: adiom.v1.ConnectorService.WriteData:output_type -> adiom.v1.WriteDataResponse + 14, // 14: adiom.v1.ConnectorService.WriteUpdates:output_type -> adiom.v1.WriteUpdatesResponse + 15, // 15: adiom.v1.ConnectorService.GeneratePlan:output_type -> adiom.v1.GeneratePlanResponse + 16, // 16: adiom.v1.ConnectorService.ListData:output_type -> adiom.v1.ListDataResponse + 17, // 17: adiom.v1.ConnectorService.StreamUpdates:output_type -> adiom.v1.StreamUpdatesResponse + 18, // 18: adiom.v1.ConnectorService.StreamLSN:output_type -> adiom.v1.StreamLSNResponse + 19, // 19: adiom.v1.ConnectorService.GetByIds:output_type -> adiom.v1.GetByIdsResponse + 20, // 20: adiom.v1.TransformService.GetTransformInfo:output_type -> adiom.v1.GetTransformInfoResponse + 21, // 21: adiom.v1.TransformService.GetTransform:output_type -> adiom.v1.GetTransformResponse + 11, // [11:22] is the sub-list for method output_type + 0, // [0:11] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/gen/adiom/v1/adiom_grpc.pb.go b/gen/adiom/v1/adiom_grpc.pb.go index 4a9be87d..7a8e744f 100644 --- a/gen/adiom/v1/adiom_grpc.pb.go +++ b/gen/adiom/v1/adiom_grpc.pb.go @@ -27,6 +27,7 @@ const ( ConnectorService_ListData_FullMethodName = "/adiom.v1.ConnectorService/ListData" ConnectorService_StreamUpdates_FullMethodName = "/adiom.v1.ConnectorService/StreamUpdates" ConnectorService_StreamLSN_FullMethodName = "/adiom.v1.ConnectorService/StreamLSN" + ConnectorService_GetByIds_FullMethodName = "/adiom.v1.ConnectorService/GetByIds" ) // ConnectorServiceClient is the client API for ConnectorService service. @@ -43,6 +44,7 @@ type ConnectorServiceClient interface { ListData(ctx context.Context, in *ListDataRequest, opts ...grpc.CallOption) (*ListDataResponse, error) StreamUpdates(ctx context.Context, in *StreamUpdatesRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamUpdatesResponse], error) StreamLSN(ctx context.Context, in *StreamLSNRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamLSNResponse], error) + GetByIds(ctx context.Context, in *GetByIdsRequest, opts ...grpc.CallOption) (*GetByIdsResponse, error) } type connectorServiceClient struct { @@ -151,6 +153,16 @@ func (c *connectorServiceClient) StreamLSN(ctx context.Context, in *StreamLSNReq // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. type ConnectorService_StreamLSNClient = grpc.ServerStreamingClient[StreamLSNResponse] +func (c *connectorServiceClient) GetByIds(ctx context.Context, in *GetByIdsRequest, opts ...grpc.CallOption) (*GetByIdsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetByIdsResponse) + err := c.cc.Invoke(ctx, ConnectorService_GetByIds_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // ConnectorServiceServer is the server API for ConnectorService service. // All implementations must embed UnimplementedConnectorServiceServer // for forward compatibility. @@ -165,6 +177,7 @@ type ConnectorServiceServer interface { ListData(context.Context, *ListDataRequest) (*ListDataResponse, error) StreamUpdates(*StreamUpdatesRequest, grpc.ServerStreamingServer[StreamUpdatesResponse]) error StreamLSN(*StreamLSNRequest, grpc.ServerStreamingServer[StreamLSNResponse]) error + GetByIds(context.Context, *GetByIdsRequest) (*GetByIdsResponse, error) mustEmbedUnimplementedConnectorServiceServer() } @@ -199,6 +212,9 @@ func (UnimplementedConnectorServiceServer) StreamUpdates(*StreamUpdatesRequest, func (UnimplementedConnectorServiceServer) StreamLSN(*StreamLSNRequest, grpc.ServerStreamingServer[StreamLSNResponse]) error { return status.Errorf(codes.Unimplemented, "method StreamLSN not implemented") } +func (UnimplementedConnectorServiceServer) GetByIds(context.Context, *GetByIdsRequest) (*GetByIdsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetByIds not implemented") +} func (UnimplementedConnectorServiceServer) mustEmbedUnimplementedConnectorServiceServer() {} func (UnimplementedConnectorServiceServer) testEmbeddedByValue() {} @@ -350,6 +366,24 @@ func _ConnectorService_StreamLSN_Handler(srv interface{}, stream grpc.ServerStre // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. type ConnectorService_StreamLSNServer = grpc.ServerStreamingServer[StreamLSNResponse] +func _ConnectorService_GetByIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetByIdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConnectorServiceServer).GetByIds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ConnectorService_GetByIds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConnectorServiceServer).GetByIds(ctx, req.(*GetByIdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ConnectorService_ServiceDesc is the grpc.ServiceDesc for ConnectorService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -381,6 +415,10 @@ var ConnectorService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListData", Handler: _ConnectorService_ListData_Handler, }, + { + MethodName: "GetByIds", + Handler: _ConnectorService_GetByIds_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/gen/adiom/v1/adiomv1connect/adiom.connect.go b/gen/adiom/v1/adiomv1connect/adiom.connect.go index e1d570a9..c3258ee2 100644 --- a/gen/adiom/v1/adiomv1connect/adiom.connect.go +++ b/gen/adiom/v1/adiomv1connect/adiom.connect.go @@ -59,6 +59,9 @@ const ( // ConnectorServiceStreamLSNProcedure is the fully-qualified name of the ConnectorService's // StreamLSN RPC. ConnectorServiceStreamLSNProcedure = "/adiom.v1.ConnectorService/StreamLSN" + // ConnectorServiceGetByIdsProcedure is the fully-qualified name of the ConnectorService's GetByIds + // RPC. + ConnectorServiceGetByIdsProcedure = "/adiom.v1.ConnectorService/GetByIds" // TransformServiceGetTransformInfoProcedure is the fully-qualified name of the TransformService's // GetTransformInfo RPC. TransformServiceGetTransformInfoProcedure = "/adiom.v1.TransformService/GetTransformInfo" @@ -78,6 +81,7 @@ var ( connectorServiceListDataMethodDescriptor = connectorServiceServiceDescriptor.Methods().ByName("ListData") connectorServiceStreamUpdatesMethodDescriptor = connectorServiceServiceDescriptor.Methods().ByName("StreamUpdates") connectorServiceStreamLSNMethodDescriptor = connectorServiceServiceDescriptor.Methods().ByName("StreamLSN") + connectorServiceGetByIdsMethodDescriptor = connectorServiceServiceDescriptor.Methods().ByName("GetByIds") transformServiceServiceDescriptor = v1.File_adiom_v1_adiom_proto.Services().ByName("TransformService") transformServiceGetTransformInfoMethodDescriptor = transformServiceServiceDescriptor.Methods().ByName("GetTransformInfo") transformServiceGetTransformMethodDescriptor = transformServiceServiceDescriptor.Methods().ByName("GetTransform") @@ -95,6 +99,7 @@ type ConnectorServiceClient interface { ListData(context.Context, *connect.Request[v1.ListDataRequest]) (*connect.Response[v1.ListDataResponse], error) StreamUpdates(context.Context, *connect.Request[v1.StreamUpdatesRequest]) (*connect.ServerStreamForClient[v1.StreamUpdatesResponse], error) StreamLSN(context.Context, *connect.Request[v1.StreamLSNRequest]) (*connect.ServerStreamForClient[v1.StreamLSNResponse], error) + GetByIds(context.Context, *connect.Request[v1.GetByIdsRequest]) (*connect.Response[v1.GetByIdsResponse], error) } // NewConnectorServiceClient constructs a client for the adiom.v1.ConnectorService service. By @@ -155,6 +160,12 @@ func NewConnectorServiceClient(httpClient connect.HTTPClient, baseURL string, op connect.WithSchema(connectorServiceStreamLSNMethodDescriptor), connect.WithClientOptions(opts...), ), + getByIds: connect.NewClient[v1.GetByIdsRequest, v1.GetByIdsResponse]( + httpClient, + baseURL+ConnectorServiceGetByIdsProcedure, + connect.WithSchema(connectorServiceGetByIdsMethodDescriptor), + connect.WithClientOptions(opts...), + ), } } @@ -168,6 +179,7 @@ type connectorServiceClient struct { listData *connect.Client[v1.ListDataRequest, v1.ListDataResponse] streamUpdates *connect.Client[v1.StreamUpdatesRequest, v1.StreamUpdatesResponse] streamLSN *connect.Client[v1.StreamLSNRequest, v1.StreamLSNResponse] + getByIds *connect.Client[v1.GetByIdsRequest, v1.GetByIdsResponse] } // GetInfo calls adiom.v1.ConnectorService.GetInfo. @@ -210,6 +222,11 @@ func (c *connectorServiceClient) StreamLSN(ctx context.Context, req *connect.Req return c.streamLSN.CallServerStream(ctx, req) } +// GetByIds calls adiom.v1.ConnectorService.GetByIds. +func (c *connectorServiceClient) GetByIds(ctx context.Context, req *connect.Request[v1.GetByIdsRequest]) (*connect.Response[v1.GetByIdsResponse], error) { + return c.getByIds.CallUnary(ctx, req) +} + // ConnectorServiceHandler is an implementation of the adiom.v1.ConnectorService service. type ConnectorServiceHandler interface { GetInfo(context.Context, *connect.Request[v1.GetInfoRequest]) (*connect.Response[v1.GetInfoResponse], error) @@ -222,6 +239,7 @@ type ConnectorServiceHandler interface { ListData(context.Context, *connect.Request[v1.ListDataRequest]) (*connect.Response[v1.ListDataResponse], error) StreamUpdates(context.Context, *connect.Request[v1.StreamUpdatesRequest], *connect.ServerStream[v1.StreamUpdatesResponse]) error StreamLSN(context.Context, *connect.Request[v1.StreamLSNRequest], *connect.ServerStream[v1.StreamLSNResponse]) error + GetByIds(context.Context, *connect.Request[v1.GetByIdsRequest]) (*connect.Response[v1.GetByIdsResponse], error) } // NewConnectorServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -278,6 +296,12 @@ func NewConnectorServiceHandler(svc ConnectorServiceHandler, opts ...connect.Han connect.WithSchema(connectorServiceStreamLSNMethodDescriptor), connect.WithHandlerOptions(opts...), ) + connectorServiceGetByIdsHandler := connect.NewUnaryHandler( + ConnectorServiceGetByIdsProcedure, + svc.GetByIds, + connect.WithSchema(connectorServiceGetByIdsMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) return "/adiom.v1.ConnectorService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case ConnectorServiceGetInfoProcedure: @@ -296,6 +320,8 @@ func NewConnectorServiceHandler(svc ConnectorServiceHandler, opts ...connect.Han connectorServiceStreamUpdatesHandler.ServeHTTP(w, r) case ConnectorServiceStreamLSNProcedure: connectorServiceStreamLSNHandler.ServeHTTP(w, r) + case ConnectorServiceGetByIdsProcedure: + connectorServiceGetByIdsHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -337,6 +363,10 @@ func (UnimplementedConnectorServiceHandler) StreamLSN(context.Context, *connect. return connect.NewError(connect.CodeUnimplemented, errors.New("adiom.v1.ConnectorService.StreamLSN is not implemented")) } +func (UnimplementedConnectorServiceHandler) GetByIds(context.Context, *connect.Request[v1.GetByIdsRequest]) (*connect.Response[v1.GetByIdsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("adiom.v1.ConnectorService.GetByIds is not implemented")) +} + // TransformServiceClient is a client for the adiom.v1.TransformService service. type TransformServiceClient interface { GetTransformInfo(context.Context, *connect.Request[v1.GetTransformInfoRequest]) (*connect.Response[v1.GetTransformInfoResponse], error) diff --git a/gen/adiom/v1/messages.pb.go b/gen/adiom/v1/messages.pb.go index c9b0373d..d3438147 100644 --- a/gen/adiom/v1/messages.pb.go +++ b/gen/adiom/v1/messages.pb.go @@ -1302,6 +1302,110 @@ func (x *StreamLSNResponse) GetNextCursor() []byte { return nil } +type GetByIdsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + Ids []*GetByIdsRequest_IdRequest `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` + Type DataType `protobuf:"varint,3,opt,name=type,proto3,enum=adiom.v1.DataType" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetByIdsRequest) Reset() { + *x = GetByIdsRequest{} + mi := &file_adiom_v1_messages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetByIdsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetByIdsRequest) ProtoMessage() {} + +func (x *GetByIdsRequest) ProtoReflect() protoreflect.Message { + mi := &file_adiom_v1_messages_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetByIdsRequest.ProtoReflect.Descriptor instead. +func (*GetByIdsRequest) Descriptor() ([]byte, []int) { + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{21} +} + +func (x *GetByIdsRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *GetByIdsRequest) GetIds() []*GetByIdsRequest_IdRequest { + if x != nil { + return x.Ids + } + return nil +} + +func (x *GetByIdsRequest) GetType() DataType { + if x != nil { + return x.Type + } + return DataType_DATA_TYPE_UNKNOWN +} + +type GetByIdsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*GetByIdsResponse_ResponseItem `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` // order should be the same as the request ids + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetByIdsResponse) Reset() { + *x = GetByIdsResponse{} + mi := &file_adiom_v1_messages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetByIdsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetByIdsResponse) ProtoMessage() {} + +func (x *GetByIdsResponse) ProtoReflect() protoreflect.Message { + mi := &file_adiom_v1_messages_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetByIdsResponse.ProtoReflect.Descriptor instead. +func (*GetByIdsResponse) Descriptor() ([]byte, []int) { + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{22} +} + +func (x *GetByIdsResponse) GetData() []*GetByIdsResponse_ResponseItem { + if x != nil { + return x.Data + } + return nil +} + type GetTransformInfoRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -1310,7 +1414,7 @@ type GetTransformInfoRequest struct { func (x *GetTransformInfoRequest) Reset() { *x = GetTransformInfoRequest{} - mi := &file_adiom_v1_messages_proto_msgTypes[21] + mi := &file_adiom_v1_messages_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1322,7 +1426,7 @@ func (x *GetTransformInfoRequest) String() string { func (*GetTransformInfoRequest) ProtoMessage() {} func (x *GetTransformInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[21] + mi := &file_adiom_v1_messages_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1335,7 +1439,7 @@ func (x *GetTransformInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTransformInfoRequest.ProtoReflect.Descriptor instead. func (*GetTransformInfoRequest) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{21} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{23} } type GetTransformInfoResponse struct { @@ -1348,7 +1452,7 @@ type GetTransformInfoResponse struct { func (x *GetTransformInfoResponse) Reset() { *x = GetTransformInfoResponse{} - mi := &file_adiom_v1_messages_proto_msgTypes[22] + mi := &file_adiom_v1_messages_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1360,7 +1464,7 @@ func (x *GetTransformInfoResponse) String() string { func (*GetTransformInfoResponse) ProtoMessage() {} func (x *GetTransformInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[22] + mi := &file_adiom_v1_messages_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1373,7 +1477,7 @@ func (x *GetTransformInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTransformInfoResponse.ProtoReflect.Descriptor instead. func (*GetTransformInfoResponse) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{22} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{24} } func (x *GetTransformInfoResponse) GetTransforms() []*GetTransformInfoResponse_TransformInfo { @@ -1403,7 +1507,7 @@ type GetTransformRequest struct { func (x *GetTransformRequest) Reset() { *x = GetTransformRequest{} - mi := &file_adiom_v1_messages_proto_msgTypes[23] + mi := &file_adiom_v1_messages_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1415,7 +1519,7 @@ func (x *GetTransformRequest) String() string { func (*GetTransformRequest) ProtoMessage() {} func (x *GetTransformRequest) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[23] + mi := &file_adiom_v1_messages_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1428,7 +1532,7 @@ func (x *GetTransformRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTransformRequest.ProtoReflect.Descriptor instead. func (*GetTransformRequest) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{23} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{25} } func (x *GetTransformRequest) GetNamespace() string { @@ -1477,7 +1581,7 @@ type TransformResponse struct { func (x *TransformResponse) Reset() { *x = TransformResponse{} - mi := &file_adiom_v1_messages_proto_msgTypes[24] + mi := &file_adiom_v1_messages_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1489,7 +1593,7 @@ func (x *TransformResponse) String() string { func (*TransformResponse) ProtoMessage() {} func (x *TransformResponse) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[24] + mi := &file_adiom_v1_messages_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1502,7 +1606,7 @@ func (x *TransformResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TransformResponse.ProtoReflect.Descriptor instead. func (*TransformResponse) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{24} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{26} } func (x *TransformResponse) GetNamespace() string { @@ -1538,7 +1642,7 @@ type GetTransformResponse struct { func (x *GetTransformResponse) Reset() { *x = GetTransformResponse{} - mi := &file_adiom_v1_messages_proto_msgTypes[25] + mi := &file_adiom_v1_messages_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1550,7 +1654,7 @@ func (x *GetTransformResponse) String() string { func (*GetTransformResponse) ProtoMessage() {} func (x *GetTransformResponse) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[25] + mi := &file_adiom_v1_messages_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1563,7 +1667,7 @@ func (x *GetTransformResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTransformResponse.ProtoReflect.Descriptor instead. func (*GetTransformResponse) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{25} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{27} } func (x *GetTransformResponse) GetNamespace() string { @@ -1605,14 +1709,16 @@ type Capabilities_Source struct { MultiNamespacePlan bool `protobuf:"varint,3,opt,name=multi_namespace_plan,json=multiNamespacePlan,proto3" json:"multi_namespace_plan,omitempty"` // allows requesting a plan without specifying any namespaces // the behavior is up to the source- usually it means all available namespaces - DefaultPlan bool `protobuf:"varint,4,opt,name=default_plan,json=defaultPlan,proto3" json:"default_plan,omitempty"` + DefaultPlan bool `protobuf:"varint,4,opt,name=default_plan,json=defaultPlan,proto3" json:"default_plan,omitempty"` + // whether the GetByIds endpoint is functional + GetByIds bool `protobuf:"varint,5,opt,name=get_by_ids,json=getByIds,proto3" json:"get_by_ids,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Capabilities_Source) Reset() { *x = Capabilities_Source{} - mi := &file_adiom_v1_messages_proto_msgTypes[26] + mi := &file_adiom_v1_messages_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1624,7 +1730,7 @@ func (x *Capabilities_Source) String() string { func (*Capabilities_Source) ProtoMessage() {} func (x *Capabilities_Source) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[26] + mi := &file_adiom_v1_messages_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1668,6 +1774,13 @@ func (x *Capabilities_Source) GetDefaultPlan() bool { return false } +func (x *Capabilities_Source) GetGetByIds() bool { + if x != nil { + return x.GetByIds + } + return false +} + type Capabilities_Sink struct { state protoimpl.MessageState `protogen:"open.v1"` SupportedDataTypes []DataType `protobuf:"varint,1,rep,packed,name=supported_data_types,json=supportedDataTypes,proto3,enum=adiom.v1.DataType" json:"supported_data_types,omitempty"` @@ -1677,7 +1790,7 @@ type Capabilities_Sink struct { func (x *Capabilities_Sink) Reset() { *x = Capabilities_Sink{} - mi := &file_adiom_v1_messages_proto_msgTypes[27] + mi := &file_adiom_v1_messages_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1689,7 +1802,7 @@ func (x *Capabilities_Sink) String() string { func (*Capabilities_Sink) ProtoMessage() {} func (x *Capabilities_Sink) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[27] + mi := &file_adiom_v1_messages_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1712,6 +1825,94 @@ func (x *Capabilities_Sink) GetSupportedDataTypes() []DataType { return nil } +type GetByIdsRequest_IdRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id []*BsonValue `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetByIdsRequest_IdRequest) Reset() { + *x = GetByIdsRequest_IdRequest{} + mi := &file_adiom_v1_messages_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetByIdsRequest_IdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetByIdsRequest_IdRequest) ProtoMessage() {} + +func (x *GetByIdsRequest_IdRequest) ProtoReflect() protoreflect.Message { + mi := &file_adiom_v1_messages_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetByIdsRequest_IdRequest.ProtoReflect.Descriptor instead. +func (*GetByIdsRequest_IdRequest) Descriptor() ([]byte, []int) { + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{21, 0} +} + +func (x *GetByIdsRequest_IdRequest) GetId() []*BsonValue { + if x != nil { + return x.Id + } + return nil +} + +type GetByIdsResponse_ResponseItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // empty if not found + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetByIdsResponse_ResponseItem) Reset() { + *x = GetByIdsResponse_ResponseItem{} + mi := &file_adiom_v1_messages_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetByIdsResponse_ResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetByIdsResponse_ResponseItem) ProtoMessage() {} + +func (x *GetByIdsResponse_ResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_adiom_v1_messages_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetByIdsResponse_ResponseItem.ProtoReflect.Descriptor instead. +func (*GetByIdsResponse_ResponseItem) Descriptor() ([]byte, []int) { + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{22, 0} +} + +func (x *GetByIdsResponse_ResponseItem) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + type GetTransformInfoResponse_TransformInfo struct { state protoimpl.MessageState `protogen:"open.v1"` RequestType DataType `protobuf:"varint,1,opt,name=request_type,json=requestType,proto3,enum=adiom.v1.DataType" json:"request_type,omitempty"` @@ -1722,7 +1923,7 @@ type GetTransformInfoResponse_TransformInfo struct { func (x *GetTransformInfoResponse_TransformInfo) Reset() { *x = GetTransformInfoResponse_TransformInfo{} - mi := &file_adiom_v1_messages_proto_msgTypes[28] + mi := &file_adiom_v1_messages_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1734,7 +1935,7 @@ func (x *GetTransformInfoResponse_TransformInfo) String() string { func (*GetTransformInfoResponse_TransformInfo) ProtoMessage() {} func (x *GetTransformInfoResponse_TransformInfo) ProtoReflect() protoreflect.Message { - mi := &file_adiom_v1_messages_proto_msgTypes[28] + mi := &file_adiom_v1_messages_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1747,7 +1948,7 @@ func (x *GetTransformInfoResponse_TransformInfo) ProtoReflect() protoreflect.Mes // Deprecated: Use GetTransformInfoResponse_TransformInfo.ProtoReflect.Descriptor instead. func (*GetTransformInfoResponse_TransformInfo) Descriptor() ([]byte, []int) { - return file_adiom_v1_messages_proto_rawDescGZIP(), []int{22, 0} + return file_adiom_v1_messages_proto_rawDescGZIP(), []int{24, 0} } func (x *GetTransformInfoResponse_TransformInfo) GetRequestType() DataType { @@ -1798,14 +1999,14 @@ var file_adiom_v1_messages_proto_rawDesc = []byte{ 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x89, 0x03, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0xa7, 0x03, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x69, - 0x6e, 0x6b, 0x52, 0x04, 0x73, 0x69, 0x6e, 0x6b, 0x1a, 0xc2, 0x01, 0x0a, 0x06, 0x53, 0x6f, 0x75, + 0x6e, 0x6b, 0x52, 0x04, 0x73, 0x69, 0x6e, 0x6b, 0x1a, 0xe0, 0x01, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, @@ -1817,188 +2018,209 @@ var file_adiom_v1_messages_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x1a, 0x4c, 0x0a, - 0x04, 0x53, 0x69, 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa4, 0x01, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0x34, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, - 0x63, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, - 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x73, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, - 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x22, 0x6c, 0x0a, 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x57, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1c, 0x0a, + 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x73, 0x1a, 0x4c, 0x0a, 0x04, 0x53, + 0x69, 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0x34, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x69, 0x6f, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x73, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x14, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x30, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x73, + 0x65, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x69, 0x6f, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x22, 0x6c, 0x0a, 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x13, 0x0a, 0x11, 0x57, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, + 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x16, 0x0a, 0x14, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, + 0xb2, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64, 0x69, + 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x53, + 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, + 0x22, 0x46, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x53, 0x4e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6c, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, + 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x03, 0x69, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x69, 0x64, + 0x73, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x30, 0x0a, 0x09, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x73, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x22, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa6, 0x02, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, + 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, + 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x75, 0x73, 0x65, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x1a, 0x81, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x22, 0xe3, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64, + 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x11, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x16, 0x0a, 0x14, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x14, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, - 0x72, 0x22, 0xb2, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, - 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, - 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4c, 0x53, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x22, 0x46, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x53, 0x4e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x73, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa6, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x75, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x81, 0x01, 0x0a, 0x0d, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0c, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, - 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xe3, - 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, - 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2a, - 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2a, 0x52, 0x0a, 0x08, 0x44, 0x61, 0x74, - 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x5f, - 0x42, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x2a, 0x8d, 0x01, - 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x1e, 0x0a, - 0x1a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x52, - 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x04, 0x42, 0x32, 0x5a, - 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x69, 0x6f, - 0x6d, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x64, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x67, 0x65, 0x6e, - 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x76, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2a, + 0x52, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x44, + 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x5f, 0x42, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x49, + 0x44, 0x10, 0x02, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, + 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x45, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x45, 0x10, 0x04, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x64, 0x73, 0x79, + 0x6e, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x2f, 0x76, 0x31, 0x3b, + 0x61, 0x64, 0x69, 0x6f, 0x6d, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2014,7 +2236,7 @@ func file_adiom_v1_messages_proto_rawDescGZIP() []byte { } var file_adiom_v1_messages_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_adiom_v1_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_adiom_v1_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_adiom_v1_messages_proto_goTypes = []any{ (DataType)(0), // 0: adiom.v1.DataType (UpdateType)(0), // 1: adiom.v1.UpdateType @@ -2039,19 +2261,23 @@ var file_adiom_v1_messages_proto_goTypes = []any{ (*StreamUpdatesResponse)(nil), // 20: adiom.v1.StreamUpdatesResponse (*StreamLSNRequest)(nil), // 21: adiom.v1.StreamLSNRequest (*StreamLSNResponse)(nil), // 22: adiom.v1.StreamLSNResponse - (*GetTransformInfoRequest)(nil), // 23: adiom.v1.GetTransformInfoRequest - (*GetTransformInfoResponse)(nil), // 24: adiom.v1.GetTransformInfoResponse - (*GetTransformRequest)(nil), // 25: adiom.v1.GetTransformRequest - (*TransformResponse)(nil), // 26: adiom.v1.TransformResponse - (*GetTransformResponse)(nil), // 27: adiom.v1.GetTransformResponse - (*Capabilities_Source)(nil), // 28: adiom.v1.Capabilities.Source - (*Capabilities_Sink)(nil), // 29: adiom.v1.Capabilities.Sink - (*GetTransformInfoResponse_TransformInfo)(nil), // 30: adiom.v1.GetTransformInfoResponse.TransformInfo - (*timestamppb.Timestamp)(nil), // 31: google.protobuf.Timestamp + (*GetByIdsRequest)(nil), // 23: adiom.v1.GetByIdsRequest + (*GetByIdsResponse)(nil), // 24: adiom.v1.GetByIdsResponse + (*GetTransformInfoRequest)(nil), // 25: adiom.v1.GetTransformInfoRequest + (*GetTransformInfoResponse)(nil), // 26: adiom.v1.GetTransformInfoResponse + (*GetTransformRequest)(nil), // 27: adiom.v1.GetTransformRequest + (*TransformResponse)(nil), // 28: adiom.v1.TransformResponse + (*GetTransformResponse)(nil), // 29: adiom.v1.GetTransformResponse + (*Capabilities_Source)(nil), // 30: adiom.v1.Capabilities.Source + (*Capabilities_Sink)(nil), // 31: adiom.v1.Capabilities.Sink + (*GetByIdsRequest_IdRequest)(nil), // 32: adiom.v1.GetByIdsRequest.IdRequest + (*GetByIdsResponse_ResponseItem)(nil), // 33: adiom.v1.GetByIdsResponse.ResponseItem + (*GetTransformInfoResponse_TransformInfo)(nil), // 34: adiom.v1.GetTransformInfoResponse.TransformInfo + (*timestamppb.Timestamp)(nil), // 35: google.protobuf.Timestamp } var file_adiom_v1_messages_proto_depIdxs = []int32{ - 28, // 0: adiom.v1.Capabilities.source:type_name -> adiom.v1.Capabilities.Source - 29, // 1: adiom.v1.Capabilities.sink:type_name -> adiom.v1.Capabilities.Sink + 30, // 0: adiom.v1.Capabilities.source:type_name -> adiom.v1.Capabilities.Source + 31, // 1: adiom.v1.Capabilities.sink:type_name -> adiom.v1.Capabilities.Sink 5, // 2: adiom.v1.GetInfoResponse.capabilities:type_name -> adiom.v1.Capabilities 4, // 3: adiom.v1.GeneratePlanResponse.partitions:type_name -> adiom.v1.Partition 3, // 4: adiom.v1.GeneratePlanResponse.updates_partitions:type_name -> adiom.v1.UpdatesPartition @@ -2064,23 +2290,27 @@ var file_adiom_v1_messages_proto_depIdxs = []int32{ 0, // 11: adiom.v1.WriteUpdatesRequest.type:type_name -> adiom.v1.DataType 0, // 12: adiom.v1.StreamUpdatesRequest.type:type_name -> adiom.v1.DataType 12, // 13: adiom.v1.StreamUpdatesResponse.updates:type_name -> adiom.v1.Update - 31, // 14: adiom.v1.StreamUpdatesResponse.time:type_name -> google.protobuf.Timestamp - 30, // 15: adiom.v1.GetTransformInfoResponse.transforms:type_name -> adiom.v1.GetTransformInfoResponse.TransformInfo - 12, // 16: adiom.v1.GetTransformRequest.updates:type_name -> adiom.v1.Update - 0, // 17: adiom.v1.GetTransformRequest.request_type:type_name -> adiom.v1.DataType - 0, // 18: adiom.v1.GetTransformRequest.response_type:type_name -> adiom.v1.DataType - 12, // 19: adiom.v1.TransformResponse.updates:type_name -> adiom.v1.Update - 12, // 20: adiom.v1.GetTransformResponse.updates:type_name -> adiom.v1.Update - 26, // 21: adiom.v1.GetTransformResponse.responses:type_name -> adiom.v1.TransformResponse - 0, // 22: adiom.v1.Capabilities.Source.supported_data_types:type_name -> adiom.v1.DataType - 0, // 23: adiom.v1.Capabilities.Sink.supported_data_types:type_name -> adiom.v1.DataType - 0, // 24: adiom.v1.GetTransformInfoResponse.TransformInfo.request_type:type_name -> adiom.v1.DataType - 0, // 25: adiom.v1.GetTransformInfoResponse.TransformInfo.response_types:type_name -> adiom.v1.DataType - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 35, // 14: adiom.v1.StreamUpdatesResponse.time:type_name -> google.protobuf.Timestamp + 32, // 15: adiom.v1.GetByIdsRequest.ids:type_name -> adiom.v1.GetByIdsRequest.IdRequest + 0, // 16: adiom.v1.GetByIdsRequest.type:type_name -> adiom.v1.DataType + 33, // 17: adiom.v1.GetByIdsResponse.data:type_name -> adiom.v1.GetByIdsResponse.ResponseItem + 34, // 18: adiom.v1.GetTransformInfoResponse.transforms:type_name -> adiom.v1.GetTransformInfoResponse.TransformInfo + 12, // 19: adiom.v1.GetTransformRequest.updates:type_name -> adiom.v1.Update + 0, // 20: adiom.v1.GetTransformRequest.request_type:type_name -> adiom.v1.DataType + 0, // 21: adiom.v1.GetTransformRequest.response_type:type_name -> adiom.v1.DataType + 12, // 22: adiom.v1.TransformResponse.updates:type_name -> adiom.v1.Update + 12, // 23: adiom.v1.GetTransformResponse.updates:type_name -> adiom.v1.Update + 28, // 24: adiom.v1.GetTransformResponse.responses:type_name -> adiom.v1.TransformResponse + 0, // 25: adiom.v1.Capabilities.Source.supported_data_types:type_name -> adiom.v1.DataType + 0, // 26: adiom.v1.Capabilities.Sink.supported_data_types:type_name -> adiom.v1.DataType + 2, // 27: adiom.v1.GetByIdsRequest.IdRequest.id:type_name -> adiom.v1.BsonValue + 0, // 28: adiom.v1.GetTransformInfoResponse.TransformInfo.request_type:type_name -> adiom.v1.DataType + 0, // 29: adiom.v1.GetTransformInfoResponse.TransformInfo.response_types:type_name -> adiom.v1.DataType + 30, // [30:30] is the sub-list for method output_type + 30, // [30:30] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name } func init() { file_adiom_v1_messages_proto_init() } @@ -2094,7 +2324,7 @@ func file_adiom_v1_messages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_adiom_v1_messages_proto_rawDesc, NumEnums: 2, - NumMessages: 29, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/java/src/main/java/adiom/BsonHelper.java b/java/src/main/java/adiom/BsonHelper.java index 2860ff9c..8045f7dd 100644 --- a/java/src/main/java/adiom/BsonHelper.java +++ b/java/src/main/java/adiom/BsonHelper.java @@ -14,6 +14,26 @@ public class BsonHelper { + public static List getIdParts(List bvs) { + if (bvs.isEmpty()) { + throw new IllegalArgumentException("Must not have empty ids."); + } + List res = new java.util.ArrayList<>(bvs.size()); + for (adiom.v1.Messages.BsonValue bv : bvs) { + BsonType typ = BsonType.findByValue(bv.getType()); + ByteBufferBsonInput input = new ByteBufferBsonInput(new ByteBufNIO(ByteBuffer.wrap(bv.getData().toByteArray()))); + if (typ == BsonType.STRING) { + String s = input.readString(); + input.close(); + res.add(s); + } else { + input.close(); + throw new IllegalArgumentException("Only String id currently supported."); + } + } + return res; + } + public static String getId(List bvs) { if (bvs.isEmpty()) { throw new IllegalArgumentException("Must not have empty ids."); @@ -31,12 +51,12 @@ public static String getId(List bvs) { } } - public static adiom.v1.Messages.BsonValue toId(String id) { + public static adiom.v1.Messages.BsonValue toId(String key, String id) { BasicOutputBuffer outputBuffer = new BasicOutputBuffer(id.length() + 5); outputBuffer.writeString(id); ByteString bs = ByteString.copyFrom(outputBuffer.getInternalBuffer(), 0, outputBuffer.getSize()); outputBuffer.close(); - return adiom.v1.Messages.BsonValue.newBuilder().setName("id").setData(bs).setType(BsonType.STRING.getValue()).build(); + return adiom.v1.Messages.BsonValue.newBuilder().setName(key).setData(bs).setType(BsonType.STRING.getValue()).build(); } public static PartitionKey getPartitionKey(List bvs) { diff --git a/java/src/main/java/adiom/Main.java b/java/src/main/java/adiom/Main.java index 571c9fa8..4f78189d 100644 --- a/java/src/main/java/adiom/Main.java +++ b/java/src/main/java/adiom/Main.java @@ -28,6 +28,7 @@ import com.azure.cosmos.models.CosmosBulkOperationResponse; import com.azure.cosmos.models.CosmosBulkOperations; import com.azure.cosmos.models.CosmosChangeFeedRequestOptions; +import com.azure.cosmos.models.CosmosItemIdentity; import com.azure.cosmos.models.CosmosItemOperation; import com.azure.cosmos.models.CosmosQueryRequestOptions; import com.azure.cosmos.models.FeedRange; @@ -48,6 +49,8 @@ import adiom.v1.Messages.DataType; import adiom.v1.Messages.GeneratePlanRequest; import adiom.v1.Messages.GeneratePlanResponse; +import adiom.v1.Messages.GetByIdsRequest; +import adiom.v1.Messages.GetByIdsResponse; import adiom.v1.Messages.GetInfoRequest; import adiom.v1.Messages.GetInfoResponse; import adiom.v1.Messages.GetNamespaceMetadataRequest; @@ -204,7 +207,8 @@ public void getInfo(GetInfoRequest request, StreamObserver resp .setCapabilities(Capabilities.newBuilder() .setSource(Source.newBuilder() .addSupportedDataTypes(DataType.DATA_TYPE_JSON_ID) - .setMultiNamespacePlan(true)) + .setMultiNamespacePlan(true) + .setGetByIds(true)) .setSink(Sink.newBuilder() .addSupportedDataTypes(DataType.DATA_TYPE_JSON_ID))) .build()); @@ -406,7 +410,7 @@ public void generatePlan(GeneratePlanRequest request, StreamObserver fr : helper.container.queryChangeFeed(ccfro, Object.class).iterableByPage()) { @@ -440,6 +444,57 @@ private synchronized long nextIndex() { return currentIndex++; } + @Override + public void getByIds(GetByIdsRequest request, StreamObserver responseObserver) { + GetByIdsResponse.Builder respBuilder = GetByIdsResponse.newBuilder(); + java.util.Map m = new java.util.HashMap<>(); + List itemsToRead = new ArrayList<>(); + + NsHelper helper = getNsHelper(responseObserver, request.getNamespace()); + if (helper == null) { + return; + } + List idKeys = new ArrayList<>(); + for (String path: helper.pkd.getPaths()) { + idKeys.add(path.substring(1)); + } + if (!idKeys.getLast().equals("id")) { + idKeys.add("id"); + } + + int i = 0; + for (GetByIdsRequest.IdRequest id : request.getIdsList()) { + PartitionKey pk = BsonHelper.getPartitionKey(id.getIdList()); + String idPart = BsonHelper.getId(id.getIdList()); + List idParts = BsonHelper.getIdParts(id.getIdList()); + itemsToRead.add(new CosmosItemIdentity(pk, idPart)); + StringBuilder sb = new StringBuilder(); + for (String s : idParts) { + sb.append(s); + sb.append(","); + } + m.put(sb.toString(), i); + respBuilder.addData(GetByIdsResponse.ResponseItem.getDefaultInstance()); + i++; + } + FeedResponse fr = helper.container.readMany(itemsToRead, JsonNode.class); + for (JsonNode n : fr.getResults()) { + StringBuilder sb = new StringBuilder(); + for (String s : idKeys) { + sb.append(n.get(s).asText()); + sb.append(","); + } + int idx = m.get(sb.toString()); + ObjectNode objectNode = (ObjectNode) (n); + objectNode.remove(CosmosInternalKeys); + ByteString data = ByteString.copyFromUtf8(n.toString()); + respBuilder.setData(idx, GetByIdsResponse.ResponseItem.newBuilder().setData(data)); + } + + responseObserver.onNext(respBuilder.build()); + responseObserver.onCompleted(); + } + @Override public void listData(ListDataRequest request, StreamObserver responseObserver) { String namespace = request.getPartition().getNamespace(); @@ -545,6 +600,13 @@ public void streamUpdates(StreamUpdatesRequest request, if (helper == null) { return; } + List idKeys = new ArrayList<>(); + for (String path: helper.pkd.getPaths()) { + idKeys.add(path.substring(1)); + } + if (!idKeys.getLast().equals("id")) { + idKeys.add("id"); + } String continuation = request.getCursor().toStringUtf8(); @@ -556,22 +618,32 @@ public void streamUpdates(StreamUpdatesRequest request, List updates = new ArrayList<>(); for (JsonNode node : fr.getResults()) { JsonNode opType = node.get("metadata").get("operationType"); - if (opType != null && opType.asText() == "delete") { - String id = node.get("metadata").get("id").asText(); - updates.add(Update.newBuilder().setType(adiom.v1.Messages.UpdateType.UPDATE_TYPE_DELETE) - .addId(BsonHelper.toId(id)).build()); + if (opType != null && opType.asText().equals("delete")) { + Update.Builder b = Update.newBuilder().setType(adiom.v1.Messages.UpdateType.UPDATE_TYPE_DELETE); + for (String k : idKeys) { + if (k.equals("id")) { + b.addId(BsonHelper.toId(k, node.get("metadata").get(k).asText())); + } else { + b.addId(BsonHelper.toId(k, node.get("metadata").get("partitionKey").get(k).asText())); + } + } + updates.add(b.build()); } else { adiom.v1.Messages.UpdateType typ = adiom.v1.Messages.UpdateType.UPDATE_TYPE_UPDATE; - if (opType != null && opType.asText() == "create") { + if (opType != null && opType.asText().equals("create")) { typ = adiom.v1.Messages.UpdateType.UPDATE_TYPE_INSERT; } JsonNode currentNode = node.get("current"); ObjectNode objectNode = (ObjectNode) (currentNode); objectNode.remove(CosmosInternalKeys); - String id = currentNode.get("id").asText(); - updates.add(Update.newBuilder().setType(typ) - .setData(ByteString.copyFromUtf8(currentNode.toString())).addId(BsonHelper.toId(id)) - .build()); + + Update.Builder b = Update.newBuilder().setType(typ) + .setData(ByteString.copyFromUtf8(currentNode.toString())); + for (String k : idKeys) { + b.addId(BsonHelper.toId(k, currentNode.get(k).asText())); + } + + updates.add(b.build()); } } diff --git a/java/src/main/java/adiom/v1/Adiom.java b/java/src/main/java/adiom/v1/Adiom.java index d8605b55..b19b9875 100644 --- a/java/src/main/java/adiom/v1/Adiom.java +++ b/java/src/main/java/adiom/v1/Adiom.java @@ -35,7 +35,7 @@ public static void registerAllExtensions( static { java.lang.String[] descriptorData = { "\n\024adiom/v1/adiom.proto\022\010adiom.v1\032\027adiom/" + - "v1/messages.proto2\374\004\n\020ConnectorService\022>" + + "v1/messages.proto2\277\005\n\020ConnectorService\022>" + "\n\007GetInfo\022\030.adiom.v1.GetInfoRequest\032\031.ad" + "iom.v1.GetInfoResponse\022e\n\024GetNamespaceMe" + "tadata\022%.adiom.v1.GetNamespaceMetadataRe" + @@ -51,13 +51,15 @@ public static void registerAllExtensions( "adiom.v1.StreamUpdatesRequest\032\037.adiom.v1" + ".StreamUpdatesResponse0\001\022F\n\tStreamLSN\022\032." + "adiom.v1.StreamLSNRequest\032\033.adiom.v1.Str" + - "eamLSNResponse0\0012\274\001\n\020TransformService\022Y\n" + - "\020GetTransformInfo\022!.adiom.v1.GetTransfor" + - "mInfoRequest\032\".adiom.v1.GetTransformInfo" + - "Response\022M\n\014GetTransform\022\035.adiom.v1.GetT" + - "ransformRequest\032\036.adiom.v1.GetTransformR" + - "esponseB2Z0github.com/adiom-data/dsync/g" + - "en/adiom/v1;adiomv1b\006proto3" + "eamLSNResponse0\001\022A\n\010GetByIds\022\031.adiom.v1." + + "GetByIdsRequest\032\032.adiom.v1.GetByIdsRespo" + + "nse2\274\001\n\020TransformService\022Y\n\020GetTransform" + + "Info\022!.adiom.v1.GetTransformInfoRequest\032" + + "\".adiom.v1.GetTransformInfoResponse\022M\n\014G" + + "etTransform\022\035.adiom.v1.GetTransformReque" + + "st\032\036.adiom.v1.GetTransformResponseB2Z0gi" + + "thub.com/adiom-data/dsync/gen/adiom/v1;a" + + "diomv1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/java/src/main/java/adiom/v1/ConnectorServiceGrpc.java b/java/src/main/java/adiom/v1/ConnectorServiceGrpc.java index ef91ff9e..75b7887a 100644 --- a/java/src/main/java/adiom/v1/ConnectorServiceGrpc.java +++ b/java/src/main/java/adiom/v1/ConnectorServiceGrpc.java @@ -260,6 +260,37 @@ adiom.v1.Messages.StreamLSNResponse> getStreamLSNMethod() { return getStreamLSNMethod; } + private static volatile io.grpc.MethodDescriptor getGetByIdsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "GetByIds", + requestType = adiom.v1.Messages.GetByIdsRequest.class, + responseType = adiom.v1.Messages.GetByIdsResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetByIdsMethod() { + io.grpc.MethodDescriptor getGetByIdsMethod; + if ((getGetByIdsMethod = ConnectorServiceGrpc.getGetByIdsMethod) == null) { + synchronized (ConnectorServiceGrpc.class) { + if ((getGetByIdsMethod = ConnectorServiceGrpc.getGetByIdsMethod) == null) { + ConnectorServiceGrpc.getGetByIdsMethod = getGetByIdsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetByIds")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + adiom.v1.Messages.GetByIdsRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + adiom.v1.Messages.GetByIdsResponse.getDefaultInstance())) + .setSchemaDescriptor(new ConnectorServiceMethodDescriptorSupplier("GetByIds")) + .build(); + } + } + } + return getGetByIdsMethod; + } + /** * Creates a new async stub that supports all call types for the service */ @@ -369,6 +400,13 @@ default void streamLSN(adiom.v1.Messages.StreamLSNRequest request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getStreamLSNMethod(), responseObserver); } + + /** + */ + default void getByIds(adiom.v1.Messages.GetByIdsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetByIdsMethod(), responseObserver); + } } /** @@ -467,6 +505,14 @@ public void streamLSN(adiom.v1.Messages.StreamLSNRequest request, io.grpc.stub.ClientCalls.asyncServerStreamingCall( getChannel().newCall(getStreamLSNMethod(), getCallOptions()), request, responseObserver); } + + /** + */ + public void getByIds(adiom.v1.Messages.GetByIdsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetByIdsMethod(), getCallOptions()), request, responseObserver); + } } /** @@ -548,6 +594,13 @@ public java.util.Iterator streamLSN( return io.grpc.stub.ClientCalls.blockingServerStreamingCall( getChannel(), getStreamLSNMethod(), getCallOptions(), request); } + + /** + */ + public adiom.v1.Messages.GetByIdsResponse getByIds(adiom.v1.Messages.GetByIdsRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetByIdsMethod(), getCallOptions(), request); + } } /** @@ -619,6 +672,14 @@ public com.google.common.util.concurrent.ListenableFuture getByIds( + adiom.v1.Messages.GetByIdsRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetByIdsMethod(), getCallOptions()), request); + } } private static final int METHODID_GET_INFO = 0; @@ -629,6 +690,7 @@ public com.google.common.util.concurrent.ListenableFuture implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -679,6 +741,10 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv serviceImpl.streamLSN((adiom.v1.Messages.StreamLSNRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_GET_BY_IDS: + serviceImpl.getByIds((adiom.v1.Messages.GetByIdsRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; default: throw new AssertionError(); } @@ -753,6 +819,13 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser adiom.v1.Messages.StreamLSNRequest, adiom.v1.Messages.StreamLSNResponse>( service, METHODID_STREAM_LSN))) + .addMethod( + getGetByIdsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + adiom.v1.Messages.GetByIdsRequest, + adiom.v1.Messages.GetByIdsResponse>( + service, METHODID_GET_BY_IDS))) .build(); } @@ -809,6 +882,7 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getListDataMethod()) .addMethod(getStreamUpdatesMethod()) .addMethod(getStreamLSNMethod()) + .addMethod(getGetByIdsMethod()) .build(); } } diff --git a/java/src/main/java/adiom/v1/Messages.java b/java/src/main/java/adiom/v1/Messages.java index 873ca753..9007b8d5 100644 --- a/java/src/main/java/adiom/v1/Messages.java +++ b/java/src/main/java/adiom/v1/Messages.java @@ -3109,6 +3109,16 @@ public interface SourceOrBuilder extends * @return The defaultPlan. */ boolean getDefaultPlan(); + + /** + *
+       * whether the GetByIds endpoint is functional
+       * 
+ * + * bool get_by_ids = 5 [json_name = "getByIds"]; + * @return The getByIds. + */ + boolean getGetByIds(); } /** * Protobuf type {@code adiom.v1.Capabilities.Source} @@ -3254,6 +3264,21 @@ public boolean getDefaultPlan() { return defaultPlan_; } + public static final int GET_BY_IDS_FIELD_NUMBER = 5; + private boolean getByIds_ = false; + /** + *
+       * whether the GetByIds endpoint is functional
+       * 
+ * + * bool get_by_ids = 5 [json_name = "getByIds"]; + * @return The getByIds. + */ + @java.lang.Override + public boolean getGetByIds() { + return getByIds_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -3285,6 +3310,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (defaultPlan_ != false) { output.writeBool(4, defaultPlan_); } + if (getByIds_ != false) { + output.writeBool(5, getByIds_); + } getUnknownFields().writeTo(output); } @@ -3318,6 +3346,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBoolSize(4, defaultPlan_); } + if (getByIds_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, getByIds_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -3340,6 +3372,8 @@ public boolean equals(final java.lang.Object obj) { != other.getMultiNamespacePlan()) return false; if (getDefaultPlan() != other.getDefaultPlan()) return false; + if (getGetByIds() + != other.getGetByIds()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -3364,6 +3398,9 @@ public int hashCode() { hash = (37 * hash) + DEFAULT_PLAN_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getDefaultPlan()); + hash = (37 * hash) + GET_BY_IDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getGetByIds()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -3500,6 +3537,7 @@ public Builder clear() { lsnStream_ = false; multiNamespacePlan_ = false; defaultPlan_ = false; + getByIds_ = false; return this; } @@ -3551,6 +3589,9 @@ private void buildPartial0(adiom.v1.Messages.Capabilities.Source result) { if (((from_bitField0_ & 0x00000008) != 0)) { result.defaultPlan_ = defaultPlan_; } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.getByIds_ = getByIds_; + } } @java.lang.Override @@ -3584,6 +3625,9 @@ public Builder mergeFrom(adiom.v1.Messages.Capabilities.Source other) { if (other.getDefaultPlan() != false) { setDefaultPlan(other.getDefaultPlan()); } + if (other.getGetByIds() != false) { + setGetByIds(other.getGetByIds()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -3642,6 +3686,11 @@ public Builder mergeFrom( bitField0_ |= 0x00000008; break; } // case 32 + case 40: { + getByIds_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } // case 40 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -3940,6 +3989,50 @@ public Builder clearDefaultPlan() { return this; } + private boolean getByIds_ ; + /** + *
+         * whether the GetByIds endpoint is functional
+         * 
+ * + * bool get_by_ids = 5 [json_name = "getByIds"]; + * @return The getByIds. + */ + @java.lang.Override + public boolean getGetByIds() { + return getByIds_; + } + /** + *
+         * whether the GetByIds endpoint is functional
+         * 
+ * + * bool get_by_ids = 5 [json_name = "getByIds"]; + * @param value The getByIds to set. + * @return This builder for chaining. + */ + public Builder setGetByIds(boolean value) { + + getByIds_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+         * whether the GetByIds endpoint is functional
+         * 
+ * + * bool get_by_ids = 5 [json_name = "getByIds"]; + * @return This builder for chaining. + */ + public Builder clearGetByIds() { + bitField0_ = (bitField0_ & ~0x00000010); + getByIds_ = false; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:adiom.v1.Capabilities.Source) } @@ -17925,17 +18018,64 @@ public adiom.v1.Messages.StreamLSNResponse getDefaultInstanceForType() { } - public interface GetTransformInfoRequestOrBuilder extends - // @@protoc_insertion_point(interface_extends:adiom.v1.GetTransformInfoRequest) + public interface GetByIdsRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:adiom.v1.GetByIdsRequest) com.google.protobuf.MessageOrBuilder { + + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The namespace. + */ + java.lang.String getNamespace(); + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The bytes for namespace. + */ + com.google.protobuf.ByteString + getNamespaceBytes(); + + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + java.util.List + getIdsList(); + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + adiom.v1.Messages.GetByIdsRequest.IdRequest getIds(int index); + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + int getIdsCount(); + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + java.util.List + getIdsOrBuilderList(); + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder getIdsOrBuilder( + int index); + + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The type. + */ + adiom.v1.Messages.DataType getType(); } /** - * Protobuf type {@code adiom.v1.GetTransformInfoRequest} + * Protobuf type {@code adiom.v1.GetByIdsRequest} */ - public static final class GetTransformInfoRequest extends + public static final class GetByIdsRequest extends com.google.protobuf.GeneratedMessage implements - // @@protoc_insertion_point(message_implements:adiom.v1.GetTransformInfoRequest) - GetTransformInfoRequestOrBuilder { + // @@protoc_insertion_point(message_implements:adiom.v1.GetByIdsRequest) + GetByIdsRequestOrBuilder { private static final long serialVersionUID = 0L; static { com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( @@ -17944,101 +18084,3094 @@ public static final class GetTransformInfoRequest extends /* minor= */ 29, /* patch= */ 1, /* suffix= */ "", - GetTransformInfoRequest.class.getName()); + GetByIdsRequest.class.getName()); } - // Use GetTransformInfoRequest.newBuilder() to construct. - private GetTransformInfoRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + // Use GetByIdsRequest.newBuilder() to construct. + private GetByIdsRequest(com.google.protobuf.GeneratedMessage.Builder builder) { super(builder); } - private GetTransformInfoRequest() { + private GetByIdsRequest() { + namespace_ = ""; + ids_ = java.util.Collections.emptyList(); + type_ = 0; } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return adiom.v1.Messages.internal_static_adiom_v1_GetTransformInfoRequest_descriptor; + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return adiom.v1.Messages.internal_static_adiom_v1_GetTransformInfoRequest_fieldAccessorTable + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_fieldAccessorTable .ensureFieldAccessorsInitialized( - adiom.v1.Messages.GetTransformInfoRequest.class, adiom.v1.Messages.GetTransformInfoRequest.Builder.class); + adiom.v1.Messages.GetByIdsRequest.class, adiom.v1.Messages.GetByIdsRequest.Builder.class); } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public interface IdRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:adiom.v1.GetByIdsRequest.IdRequest) + com.google.protobuf.MessageOrBuilder { - memoizedIsInitialized = 1; - return true; + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + java.util.List + getIdList(); + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + adiom.v1.Messages.BsonValue getId(int index); + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + int getIdCount(); + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + java.util.List + getIdOrBuilderList(); + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + adiom.v1.Messages.BsonValueOrBuilder getIdOrBuilder( + int index); } + /** + * Protobuf type {@code adiom.v1.GetByIdsRequest.IdRequest} + */ + public static final class IdRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:adiom.v1.GetByIdsRequest.IdRequest) + IdRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 29, + /* patch= */ 1, + /* suffix= */ "", + IdRequest.class.getName()); + } + // Use IdRequest.newBuilder() to construct. + private IdRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private IdRequest() { + id_ = java.util.Collections.emptyList(); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_IdRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsRequest.IdRequest.class, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder.class); + } - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List id_; + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + @java.lang.Override + public java.util.List getIdList() { + return id_; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + @java.lang.Override + public java.util.List + getIdOrBuilderList() { + return id_; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + @java.lang.Override + public int getIdCount() { + return id_.size(); + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + @java.lang.Override + public adiom.v1.Messages.BsonValue getId(int index) { + return id_.get(index); + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + @java.lang.Override + public adiom.v1.Messages.BsonValueOrBuilder getIdOrBuilder( + int index) { + return id_.get(index); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; } - if (!(obj instanceof adiom.v1.Messages.GetTransformInfoRequest)) { - return super.equals(obj); + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < id_.size(); i++) { + output.writeMessage(1, id_.get(i)); + } + getUnknownFields().writeTo(output); } - adiom.v1.Messages.GetTransformInfoRequest other = (adiom.v1.Messages.GetTransformInfoRequest) obj; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; + size = 0; + for (int i = 0; i < id_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, id_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof adiom.v1.Messages.GetByIdsRequest.IdRequest)) { + return super.equals(obj); + } + adiom.v1.Messages.GetByIdsRequest.IdRequest other = (adiom.v1.Messages.GetByIdsRequest.IdRequest) obj; + + if (!getIdList() + .equals(other.getIdList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getIdCount() > 0) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getIdList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsRequest.IdRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(adiom.v1.Messages.GetByIdsRequest.IdRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code adiom.v1.GetByIdsRequest.IdRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:adiom.v1.GetByIdsRequest.IdRequest) + adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_IdRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsRequest.IdRequest.class, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder.class); + } + + // Construct using adiom.v1.Messages.GetByIdsRequest.IdRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (idBuilder_ == null) { + id_ = java.util.Collections.emptyList(); + } else { + id_ = null; + idBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequest getDefaultInstanceForType() { + return adiom.v1.Messages.GetByIdsRequest.IdRequest.getDefaultInstance(); + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequest build() { + adiom.v1.Messages.GetByIdsRequest.IdRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequest buildPartial() { + adiom.v1.Messages.GetByIdsRequest.IdRequest result = new adiom.v1.Messages.GetByIdsRequest.IdRequest(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(adiom.v1.Messages.GetByIdsRequest.IdRequest result) { + if (idBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + id_ = java.util.Collections.unmodifiableList(id_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.id_ = id_; + } else { + result.id_ = idBuilder_.build(); + } + } + + private void buildPartial0(adiom.v1.Messages.GetByIdsRequest.IdRequest result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof adiom.v1.Messages.GetByIdsRequest.IdRequest) { + return mergeFrom((adiom.v1.Messages.GetByIdsRequest.IdRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(adiom.v1.Messages.GetByIdsRequest.IdRequest other) { + if (other == adiom.v1.Messages.GetByIdsRequest.IdRequest.getDefaultInstance()) return this; + if (idBuilder_ == null) { + if (!other.id_.isEmpty()) { + if (id_.isEmpty()) { + id_ = other.id_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureIdIsMutable(); + id_.addAll(other.id_); + } + onChanged(); + } + } else { + if (!other.id_.isEmpty()) { + if (idBuilder_.isEmpty()) { + idBuilder_.dispose(); + idBuilder_ = null; + id_ = other.id_; + bitField0_ = (bitField0_ & ~0x00000001); + idBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getIdFieldBuilder() : null; + } else { + idBuilder_.addAllMessages(other.id_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + adiom.v1.Messages.BsonValue m = + input.readMessage( + adiom.v1.Messages.BsonValue.parser(), + extensionRegistry); + if (idBuilder_ == null) { + ensureIdIsMutable(); + id_.add(m); + } else { + idBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List id_ = + java.util.Collections.emptyList(); + private void ensureIdIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + id_ = new java.util.ArrayList(id_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.BsonValue, adiom.v1.Messages.BsonValue.Builder, adiom.v1.Messages.BsonValueOrBuilder> idBuilder_; + + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public java.util.List getIdList() { + if (idBuilder_ == null) { + return java.util.Collections.unmodifiableList(id_); + } else { + return idBuilder_.getMessageList(); + } + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public int getIdCount() { + if (idBuilder_ == null) { + return id_.size(); + } else { + return idBuilder_.getCount(); + } + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public adiom.v1.Messages.BsonValue getId(int index) { + if (idBuilder_ == null) { + return id_.get(index); + } else { + return idBuilder_.getMessage(index); + } + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder setId( + int index, adiom.v1.Messages.BsonValue value) { + if (idBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdIsMutable(); + id_.set(index, value); + onChanged(); + } else { + idBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder setId( + int index, adiom.v1.Messages.BsonValue.Builder builderForValue) { + if (idBuilder_ == null) { + ensureIdIsMutable(); + id_.set(index, builderForValue.build()); + onChanged(); + } else { + idBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder addId(adiom.v1.Messages.BsonValue value) { + if (idBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdIsMutable(); + id_.add(value); + onChanged(); + } else { + idBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder addId( + int index, adiom.v1.Messages.BsonValue value) { + if (idBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdIsMutable(); + id_.add(index, value); + onChanged(); + } else { + idBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder addId( + adiom.v1.Messages.BsonValue.Builder builderForValue) { + if (idBuilder_ == null) { + ensureIdIsMutable(); + id_.add(builderForValue.build()); + onChanged(); + } else { + idBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder addId( + int index, adiom.v1.Messages.BsonValue.Builder builderForValue) { + if (idBuilder_ == null) { + ensureIdIsMutable(); + id_.add(index, builderForValue.build()); + onChanged(); + } else { + idBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder addAllId( + java.lang.Iterable values) { + if (idBuilder_ == null) { + ensureIdIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, id_); + onChanged(); + } else { + idBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder clearId() { + if (idBuilder_ == null) { + id_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + idBuilder_.clear(); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public Builder removeId(int index) { + if (idBuilder_ == null) { + ensureIdIsMutable(); + id_.remove(index); + onChanged(); + } else { + idBuilder_.remove(index); + } + return this; + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public adiom.v1.Messages.BsonValue.Builder getIdBuilder( + int index) { + return getIdFieldBuilder().getBuilder(index); + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public adiom.v1.Messages.BsonValueOrBuilder getIdOrBuilder( + int index) { + if (idBuilder_ == null) { + return id_.get(index); } else { + return idBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public java.util.List + getIdOrBuilderList() { + if (idBuilder_ != null) { + return idBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(id_); + } + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public adiom.v1.Messages.BsonValue.Builder addIdBuilder() { + return getIdFieldBuilder().addBuilder( + adiom.v1.Messages.BsonValue.getDefaultInstance()); + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public adiom.v1.Messages.BsonValue.Builder addIdBuilder( + int index) { + return getIdFieldBuilder().addBuilder( + index, adiom.v1.Messages.BsonValue.getDefaultInstance()); + } + /** + * repeated .adiom.v1.BsonValue id = 1 [json_name = "id"]; + */ + public java.util.List + getIdBuilderList() { + return getIdFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.BsonValue, adiom.v1.Messages.BsonValue.Builder, adiom.v1.Messages.BsonValueOrBuilder> + getIdFieldBuilder() { + if (idBuilder_ == null) { + idBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.BsonValue, adiom.v1.Messages.BsonValue.Builder, adiom.v1.Messages.BsonValueOrBuilder>( + id_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + id_ = null; + } + return idBuilder_; + } + + // @@protoc_insertion_point(builder_scope:adiom.v1.GetByIdsRequest.IdRequest) + } + + // @@protoc_insertion_point(class_scope:adiom.v1.GetByIdsRequest.IdRequest) + private static final adiom.v1.Messages.GetByIdsRequest.IdRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new adiom.v1.Messages.GetByIdsRequest.IdRequest(); + } + + public static adiom.v1.Messages.GetByIdsRequest.IdRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IdRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int NAMESPACE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object namespace_ = ""; + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The namespace. + */ + @java.lang.Override + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } + } + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The bytes for namespace. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IDS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private java.util.List ids_; + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + @java.lang.Override + public java.util.List getIdsList() { + return ids_; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + @java.lang.Override + public java.util.List + getIdsOrBuilderList() { + return ids_; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + @java.lang.Override + public int getIdsCount() { + return ids_.size(); + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequest getIds(int index) { + return ids_.get(index); + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder getIdsOrBuilder( + int index) { + return ids_.get(index); + } + + public static final int TYPE_FIELD_NUMBER = 3; + private int type_ = 0; + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override public adiom.v1.Messages.DataType getType() { + adiom.v1.Messages.DataType result = adiom.v1.Messages.DataType.forNumber(type_); + return result == null ? adiom.v1.Messages.DataType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(namespace_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, namespace_); + } + for (int i = 0; i < ids_.size(); i++) { + output.writeMessage(2, ids_.get(i)); + } + if (type_ != adiom.v1.Messages.DataType.DATA_TYPE_UNKNOWN.getNumber()) { + output.writeEnum(3, type_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(namespace_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, namespace_); + } + for (int i = 0; i < ids_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, ids_.get(i)); + } + if (type_ != adiom.v1.Messages.DataType.DATA_TYPE_UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, type_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof adiom.v1.Messages.GetByIdsRequest)) { + return super.equals(obj); + } + adiom.v1.Messages.GetByIdsRequest other = (adiom.v1.Messages.GetByIdsRequest) obj; + + if (!getNamespace() + .equals(other.getNamespace())) return false; + if (!getIdsList() + .equals(other.getIdsList())) return false; + if (type_ != other.type_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAMESPACE_FIELD_NUMBER; + hash = (53 * hash) + getNamespace().hashCode(); + if (getIdsCount() > 0) { + hash = (37 * hash) + IDS_FIELD_NUMBER; + hash = (53 * hash) + getIdsList().hashCode(); + } + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static adiom.v1.Messages.GetByIdsRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static adiom.v1.Messages.GetByIdsRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(adiom.v1.Messages.GetByIdsRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code adiom.v1.GetByIdsRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:adiom.v1.GetByIdsRequest) + adiom.v1.Messages.GetByIdsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsRequest.class, adiom.v1.Messages.GetByIdsRequest.Builder.class); + } + + // Construct using adiom.v1.Messages.GetByIdsRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + namespace_ = ""; + if (idsBuilder_ == null) { + ids_ = java.util.Collections.emptyList(); + } else { + ids_ = null; + idsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + type_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsRequest_descriptor; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest getDefaultInstanceForType() { + return adiom.v1.Messages.GetByIdsRequest.getDefaultInstance(); + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest build() { + adiom.v1.Messages.GetByIdsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest buildPartial() { + adiom.v1.Messages.GetByIdsRequest result = new adiom.v1.Messages.GetByIdsRequest(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(adiom.v1.Messages.GetByIdsRequest result) { + if (idsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + ids_ = java.util.Collections.unmodifiableList(ids_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.ids_ = ids_; + } else { + result.ids_ = idsBuilder_.build(); + } + } + + private void buildPartial0(adiom.v1.Messages.GetByIdsRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.namespace_ = namespace_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.type_ = type_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof adiom.v1.Messages.GetByIdsRequest) { + return mergeFrom((adiom.v1.Messages.GetByIdsRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(adiom.v1.Messages.GetByIdsRequest other) { + if (other == adiom.v1.Messages.GetByIdsRequest.getDefaultInstance()) return this; + if (!other.getNamespace().isEmpty()) { + namespace_ = other.namespace_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (idsBuilder_ == null) { + if (!other.ids_.isEmpty()) { + if (ids_.isEmpty()) { + ids_ = other.ids_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureIdsIsMutable(); + ids_.addAll(other.ids_); + } + onChanged(); + } + } else { + if (!other.ids_.isEmpty()) { + if (idsBuilder_.isEmpty()) { + idsBuilder_.dispose(); + idsBuilder_ = null; + ids_ = other.ids_; + bitField0_ = (bitField0_ & ~0x00000002); + idsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getIdsFieldBuilder() : null; + } else { + idsBuilder_.addAllMessages(other.ids_); + } + } + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + namespace_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + adiom.v1.Messages.GetByIdsRequest.IdRequest m = + input.readMessage( + adiom.v1.Messages.GetByIdsRequest.IdRequest.parser(), + extensionRegistry); + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + ids_.add(m); + } else { + idsBuilder_.addMessage(m); + } + break; + } // case 18 + case 24: { + type_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object namespace_ = ""; + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The namespace. + */ + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string namespace = 1 [json_name = "namespace"]; + * @return The bytes for namespace. + */ + public com.google.protobuf.ByteString + getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string namespace = 1 [json_name = "namespace"]; + * @param value The namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespace( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + namespace_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string namespace = 1 [json_name = "namespace"]; + * @return This builder for chaining. + */ + public Builder clearNamespace() { + namespace_ = getDefaultInstance().getNamespace(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string namespace = 1 [json_name = "namespace"]; + * @param value The bytes for namespace to set. + * @return This builder for chaining. + */ + public Builder setNamespaceBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + namespace_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.util.List ids_ = + java.util.Collections.emptyList(); + private void ensureIdsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + ids_ = new java.util.ArrayList(ids_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsRequest.IdRequest, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder, adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder> idsBuilder_; + + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public java.util.List getIdsList() { + if (idsBuilder_ == null) { + return java.util.Collections.unmodifiableList(ids_); + } else { + return idsBuilder_.getMessageList(); + } + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public int getIdsCount() { + if (idsBuilder_ == null) { + return ids_.size(); + } else { + return idsBuilder_.getCount(); + } + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public adiom.v1.Messages.GetByIdsRequest.IdRequest getIds(int index) { + if (idsBuilder_ == null) { + return ids_.get(index); + } else { + return idsBuilder_.getMessage(index); + } + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder setIds( + int index, adiom.v1.Messages.GetByIdsRequest.IdRequest value) { + if (idsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdsIsMutable(); + ids_.set(index, value); + onChanged(); + } else { + idsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder setIds( + int index, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder builderForValue) { + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + ids_.set(index, builderForValue.build()); + onChanged(); + } else { + idsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder addIds(adiom.v1.Messages.GetByIdsRequest.IdRequest value) { + if (idsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdsIsMutable(); + ids_.add(value); + onChanged(); + } else { + idsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder addIds( + int index, adiom.v1.Messages.GetByIdsRequest.IdRequest value) { + if (idsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIdsIsMutable(); + ids_.add(index, value); + onChanged(); + } else { + idsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder addIds( + adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder builderForValue) { + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + ids_.add(builderForValue.build()); + onChanged(); + } else { + idsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder addIds( + int index, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder builderForValue) { + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + ids_.add(index, builderForValue.build()); + onChanged(); + } else { + idsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder addAllIds( + java.lang.Iterable values) { + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, ids_); + onChanged(); + } else { + idsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder clearIds() { + if (idsBuilder_ == null) { + ids_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + idsBuilder_.clear(); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public Builder removeIds(int index) { + if (idsBuilder_ == null) { + ensureIdsIsMutable(); + ids_.remove(index); + onChanged(); + } else { + idsBuilder_.remove(index); + } + return this; + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder getIdsBuilder( + int index) { + return getIdsFieldBuilder().getBuilder(index); + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder getIdsOrBuilder( + int index) { + if (idsBuilder_ == null) { + return ids_.get(index); } else { + return idsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public java.util.List + getIdsOrBuilderList() { + if (idsBuilder_ != null) { + return idsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(ids_); + } + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder addIdsBuilder() { + return getIdsFieldBuilder().addBuilder( + adiom.v1.Messages.GetByIdsRequest.IdRequest.getDefaultInstance()); + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder addIdsBuilder( + int index) { + return getIdsFieldBuilder().addBuilder( + index, adiom.v1.Messages.GetByIdsRequest.IdRequest.getDefaultInstance()); + } + /** + * repeated .adiom.v1.GetByIdsRequest.IdRequest ids = 2 [json_name = "ids"]; + */ + public java.util.List + getIdsBuilderList() { + return getIdsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsRequest.IdRequest, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder, adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder> + getIdsFieldBuilder() { + if (idsBuilder_ == null) { + idsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsRequest.IdRequest, adiom.v1.Messages.GetByIdsRequest.IdRequest.Builder, adiom.v1.Messages.GetByIdsRequest.IdRequestOrBuilder>( + ids_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + ids_ = null; + } + return idsBuilder_; + } + + private int type_ = 0; + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override + public adiom.v1.Messages.DataType getType() { + adiom.v1.Messages.DataType result = adiom.v1.Messages.DataType.forNumber(type_); + return result == null ? adiom.v1.Messages.DataType.UNRECOGNIZED : result; + } + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(adiom.v1.Messages.DataType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .adiom.v1.DataType type = 3 [json_name = "type"]; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000004); + type_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:adiom.v1.GetByIdsRequest) + } + + // @@protoc_insertion_point(class_scope:adiom.v1.GetByIdsRequest) + private static final adiom.v1.Messages.GetByIdsRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new adiom.v1.Messages.GetByIdsRequest(); + } + + public static adiom.v1.Messages.GetByIdsRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetByIdsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface GetByIdsResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:adiom.v1.GetByIdsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + java.util.List + getDataList(); + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + adiom.v1.Messages.GetByIdsResponse.ResponseItem getData(int index); + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + int getDataCount(); + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + java.util.List + getDataOrBuilderList(); + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder getDataOrBuilder( + int index); + } + /** + * Protobuf type {@code adiom.v1.GetByIdsResponse} + */ + public static final class GetByIdsResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:adiom.v1.GetByIdsResponse) + GetByIdsResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 29, + /* patch= */ 1, + /* suffix= */ "", + GetByIdsResponse.class.getName()); + } + // Use GetByIdsResponse.newBuilder() to construct. + private GetByIdsResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private GetByIdsResponse() { + data_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsResponse.class, adiom.v1.Messages.GetByIdsResponse.Builder.class); + } + + public interface ResponseItemOrBuilder extends + // @@protoc_insertion_point(interface_extends:adiom.v1.GetByIdsResponse.ResponseItem) + com.google.protobuf.MessageOrBuilder { + + /** + *
+       * empty if not found
+       * 
+ * + * bytes data = 1 [json_name = "data"]; + * @return The data. + */ + com.google.protobuf.ByteString getData(); + } + /** + * Protobuf type {@code adiom.v1.GetByIdsResponse.ResponseItem} + */ + public static final class ResponseItem extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:adiom.v1.GetByIdsResponse.ResponseItem) + ResponseItemOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 29, + /* patch= */ 1, + /* suffix= */ "", + ResponseItem.class.getName()); + } + // Use ResponseItem.newBuilder() to construct. + private ResponseItem(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ResponseItem() { + data_ = com.google.protobuf.ByteString.EMPTY; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_ResponseItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsResponse.ResponseItem.class, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder.class); + } + + public static final int DATA_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+       * empty if not found
+       * 
+ * + * bytes data = 1 [json_name = "data"]; + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!data_.isEmpty()) { + output.writeBytes(1, data_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!data_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, data_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof adiom.v1.Messages.GetByIdsResponse.ResponseItem)) { + return super.equals(obj); + } + adiom.v1.Messages.GetByIdsResponse.ResponseItem other = (adiom.v1.Messages.GetByIdsResponse.ResponseItem) obj; + + if (!getData() + .equals(other.getData())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(adiom.v1.Messages.GetByIdsResponse.ResponseItem prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code adiom.v1.GetByIdsResponse.ResponseItem} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:adiom.v1.GetByIdsResponse.ResponseItem) + adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_ResponseItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsResponse.ResponseItem.class, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder.class); + } + + // Construct using adiom.v1.Messages.GetByIdsResponse.ResponseItem.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + data_ = com.google.protobuf.ByteString.EMPTY; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItem getDefaultInstanceForType() { + return adiom.v1.Messages.GetByIdsResponse.ResponseItem.getDefaultInstance(); + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItem build() { + adiom.v1.Messages.GetByIdsResponse.ResponseItem result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItem buildPartial() { + adiom.v1.Messages.GetByIdsResponse.ResponseItem result = new adiom.v1.Messages.GetByIdsResponse.ResponseItem(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(adiom.v1.Messages.GetByIdsResponse.ResponseItem result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.data_ = data_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof adiom.v1.Messages.GetByIdsResponse.ResponseItem) { + return mergeFrom((adiom.v1.Messages.GetByIdsResponse.ResponseItem)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(adiom.v1.Messages.GetByIdsResponse.ResponseItem other) { + if (other == adiom.v1.Messages.GetByIdsResponse.ResponseItem.getDefaultInstance()) return this; + if (other.getData() != com.google.protobuf.ByteString.EMPTY) { + setData(other.getData()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + data_ = input.readBytes(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+         * empty if not found
+         * 
+ * + * bytes data = 1 [json_name = "data"]; + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + /** + *
+         * empty if not found
+         * 
+ * + * bytes data = 1 [json_name = "data"]; + * @param value The data to set. + * @return This builder for chaining. + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + data_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+         * empty if not found
+         * 
+ * + * bytes data = 1 [json_name = "data"]; + * @return This builder for chaining. + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000001); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:adiom.v1.GetByIdsResponse.ResponseItem) + } + + // @@protoc_insertion_point(class_scope:adiom.v1.GetByIdsResponse.ResponseItem) + private static final adiom.v1.Messages.GetByIdsResponse.ResponseItem DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new adiom.v1.Messages.GetByIdsResponse.ResponseItem(); + } + + public static adiom.v1.Messages.GetByIdsResponse.ResponseItem getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseItem parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItem getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int DATA_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List data_; + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + @java.lang.Override + public java.util.List getDataList() { + return data_; + } + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + @java.lang.Override + public java.util.List + getDataOrBuilderList() { + return data_; + } + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + @java.lang.Override + public int getDataCount() { + return data_.size(); + } + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItem getData(int index) { + return data_.get(index); + } + /** + *
+     * order should be the same as the request ids
+     * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder getDataOrBuilder( + int index) { + return data_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < data_.size(); i++) { + output.writeMessage(1, data_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < data_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, data_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof adiom.v1.Messages.GetByIdsResponse)) { + return super.equals(obj); + } + adiom.v1.Messages.GetByIdsResponse other = (adiom.v1.Messages.GetByIdsResponse) obj; + + if (!getDataList() + .equals(other.getDataList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getDataCount() > 0) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getDataList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static adiom.v1.Messages.GetByIdsResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static adiom.v1.Messages.GetByIdsResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static adiom.v1.Messages.GetByIdsResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(adiom.v1.Messages.GetByIdsResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code adiom.v1.GetByIdsResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:adiom.v1.GetByIdsResponse) + adiom.v1.Messages.GetByIdsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetByIdsResponse.class, adiom.v1.Messages.GetByIdsResponse.Builder.class); + } + + // Construct using adiom.v1.Messages.GetByIdsResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (dataBuilder_ == null) { + data_ = java.util.Collections.emptyList(); + } else { + data_ = null; + dataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return adiom.v1.Messages.internal_static_adiom_v1_GetByIdsResponse_descriptor; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse getDefaultInstanceForType() { + return adiom.v1.Messages.GetByIdsResponse.getDefaultInstance(); + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse build() { + adiom.v1.Messages.GetByIdsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse buildPartial() { + adiom.v1.Messages.GetByIdsResponse result = new adiom.v1.Messages.GetByIdsResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(adiom.v1.Messages.GetByIdsResponse result) { + if (dataBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + data_ = java.util.Collections.unmodifiableList(data_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.data_ = data_; + } else { + result.data_ = dataBuilder_.build(); + } + } + + private void buildPartial0(adiom.v1.Messages.GetByIdsResponse result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof adiom.v1.Messages.GetByIdsResponse) { + return mergeFrom((adiom.v1.Messages.GetByIdsResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(adiom.v1.Messages.GetByIdsResponse other) { + if (other == adiom.v1.Messages.GetByIdsResponse.getDefaultInstance()) return this; + if (dataBuilder_ == null) { + if (!other.data_.isEmpty()) { + if (data_.isEmpty()) { + data_ = other.data_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureDataIsMutable(); + data_.addAll(other.data_); + } + onChanged(); + } + } else { + if (!other.data_.isEmpty()) { + if (dataBuilder_.isEmpty()) { + dataBuilder_.dispose(); + dataBuilder_ = null; + data_ = other.data_; + bitField0_ = (bitField0_ & ~0x00000001); + dataBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getDataFieldBuilder() : null; + } else { + dataBuilder_.addAllMessages(other.data_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + adiom.v1.Messages.GetByIdsResponse.ResponseItem m = + input.readMessage( + adiom.v1.Messages.GetByIdsResponse.ResponseItem.parser(), + extensionRegistry); + if (dataBuilder_ == null) { + ensureDataIsMutable(); + data_.add(m); + } else { + dataBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List data_ = + java.util.Collections.emptyList(); + private void ensureDataIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + data_ = new java.util.ArrayList(data_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsResponse.ResponseItem, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder, adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder> dataBuilder_; + + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public java.util.List getDataList() { + if (dataBuilder_ == null) { + return java.util.Collections.unmodifiableList(data_); + } else { + return dataBuilder_.getMessageList(); + } + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public int getDataCount() { + if (dataBuilder_ == null) { + return data_.size(); + } else { + return dataBuilder_.getCount(); + } + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public adiom.v1.Messages.GetByIdsResponse.ResponseItem getData(int index) { + if (dataBuilder_ == null) { + return data_.get(index); + } else { + return dataBuilder_.getMessage(index); + } + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder setData( + int index, adiom.v1.Messages.GetByIdsResponse.ResponseItem value) { + if (dataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.set(index, value); + onChanged(); + } else { + dataBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder setData( + int index, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder builderForValue) { + if (dataBuilder_ == null) { + ensureDataIsMutable(); + data_.set(index, builderForValue.build()); + onChanged(); + } else { + dataBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder addData(adiom.v1.Messages.GetByIdsResponse.ResponseItem value) { + if (dataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.add(value); + onChanged(); + } else { + dataBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder addData( + int index, adiom.v1.Messages.GetByIdsResponse.ResponseItem value) { + if (dataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDataIsMutable(); + data_.add(index, value); + onChanged(); + } else { + dataBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder addData( + adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder builderForValue) { + if (dataBuilder_ == null) { + ensureDataIsMutable(); + data_.add(builderForValue.build()); + onChanged(); + } else { + dataBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder addData( + int index, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder builderForValue) { + if (dataBuilder_ == null) { + ensureDataIsMutable(); + data_.add(index, builderForValue.build()); + onChanged(); + } else { + dataBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder addAllData( + java.lang.Iterable values) { + if (dataBuilder_ == null) { + ensureDataIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, data_); + onChanged(); + } else { + dataBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder clearData() { + if (dataBuilder_ == null) { + data_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + dataBuilder_.clear(); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public Builder removeData(int index) { + if (dataBuilder_ == null) { + ensureDataIsMutable(); + data_.remove(index); + onChanged(); + } else { + dataBuilder_.remove(index); + } + return this; + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder getDataBuilder( + int index) { + return getDataFieldBuilder().getBuilder(index); + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder getDataOrBuilder( + int index) { + if (dataBuilder_ == null) { + return data_.get(index); } else { + return dataBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public java.util.List + getDataOrBuilderList() { + if (dataBuilder_ != null) { + return dataBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(data_); + } + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder addDataBuilder() { + return getDataFieldBuilder().addBuilder( + adiom.v1.Messages.GetByIdsResponse.ResponseItem.getDefaultInstance()); + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder addDataBuilder( + int index) { + return getDataFieldBuilder().addBuilder( + index, adiom.v1.Messages.GetByIdsResponse.ResponseItem.getDefaultInstance()); + } + /** + *
+       * order should be the same as the request ids
+       * 
+ * + * repeated .adiom.v1.GetByIdsResponse.ResponseItem data = 1 [json_name = "data"]; + */ + public java.util.List + getDataBuilderList() { + return getDataFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsResponse.ResponseItem, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder, adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder> + getDataFieldBuilder() { + if (dataBuilder_ == null) { + dataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + adiom.v1.Messages.GetByIdsResponse.ResponseItem, adiom.v1.Messages.GetByIdsResponse.ResponseItem.Builder, adiom.v1.Messages.GetByIdsResponse.ResponseItemOrBuilder>( + data_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + data_ = null; + } + return dataBuilder_; + } + + // @@protoc_insertion_point(builder_scope:adiom.v1.GetByIdsResponse) + } + + // @@protoc_insertion_point(class_scope:adiom.v1.GetByIdsResponse) + private static final adiom.v1.Messages.GetByIdsResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new adiom.v1.Messages.GetByIdsResponse(); + } + + public static adiom.v1.Messages.GetByIdsResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetByIdsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public adiom.v1.Messages.GetByIdsResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface GetTransformInfoRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:adiom.v1.GetTransformInfoRequest) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code adiom.v1.GetTransformInfoRequest} + */ + public static final class GetTransformInfoRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:adiom.v1.GetTransformInfoRequest) + GetTransformInfoRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 29, + /* patch= */ 1, + /* suffix= */ "", + GetTransformInfoRequest.class.getName()); + } + // Use GetTransformInfoRequest.newBuilder() to construct. + private GetTransformInfoRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private GetTransformInfoRequest() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return adiom.v1.Messages.internal_static_adiom_v1_GetTransformInfoRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return adiom.v1.Messages.internal_static_adiom_v1_GetTransformInfoRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + adiom.v1.Messages.GetTransformInfoRequest.class, adiom.v1.Messages.GetTransformInfoRequest.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof adiom.v1.Messages.GetTransformInfoRequest)) { + return super.equals(obj); + } + adiom.v1.Messages.GetTransformInfoRequest other = (adiom.v1.Messages.GetTransformInfoRequest) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static adiom.v1.Messages.GetTransformInfoRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } @@ -23839,6 +26972,26 @@ public adiom.v1.Messages.GetTransformResponse getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_adiom_v1_StreamLSNResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_adiom_v1_GetByIdsRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_adiom_v1_GetByIdsRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_adiom_v1_GetByIdsRequest_IdRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_adiom_v1_GetByIdsResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_adiom_v1_GetByIdsResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_adiom_v1_GetByIdsResponse_ResponseItem_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_adiom_v1_GetTransformInfoRequest_descriptor; private static final @@ -23890,87 +27043,96 @@ public adiom.v1.Messages.GetTransformResponse getDefaultInstanceForType() { "header\030\002 \001(\tR\017partitionHeader\022\'\n\017partiti" + "on_value\030\003 \001(\tR\016partitionValue\022\026\n\006cursor" + "\030\004 \001(\014R\006cursor\022\'\n\017estimated_count\030\005 \001(\004R" + - "\016estimatedCount\"\211\003\n\014Capabilities\0225\n\006sour" + + "\016estimatedCount\"\247\003\n\014Capabilities\0225\n\006sour" + "ce\030\001 \001(\0132\035.adiom.v1.Capabilities.SourceR" + "\006source\022/\n\004sink\030\002 \001(\0132\033.adiom.v1.Capabil" + - "ities.SinkR\004sink\032\302\001\n\006Source\022D\n\024supported" + + "ities.SinkR\004sink\032\340\001\n\006Source\022D\n\024supported" + "_data_types\030\001 \003(\0162\022.adiom.v1.DataTypeR\022s" + "upportedDataTypes\022\035\n\nlsn_stream\030\002 \001(\010R\tl" + "snStream\0220\n\024multi_namespace_plan\030\003 \001(\010R\022" + "multiNamespacePlan\022!\n\014default_plan\030\004 \001(\010" + - "R\013defaultPlan\032L\n\004Sink\022D\n\024supported_data_" + - "types\030\001 \003(\0162\022.adiom.v1.DataTypeR\022support" + - "edDataTypes\"\020\n\016GetInfoRequest\"\244\001\n\017GetInf" + - "oResponse\022\016\n\002id\030\001 \001(\tR\002id\022\027\n\007db_type\030\002 \001" + - "(\tR\006dbType\022\030\n\007version\030\003 \001(\tR\007version\022\022\n\004" + - "spec\030\004 \001(\tR\004spec\022:\n\014capabilities\030\005 \001(\0132\026" + - ".adiom.v1.CapabilitiesR\014capabilities\";\n\033" + - "GetNamespaceMetadataRequest\022\034\n\tnamespace" + - "\030\001 \001(\tR\tnamespace\"4\n\034GetNamespaceMetadat" + - "aResponse\022\024\n\005count\030\001 \001(\004R\005count\"r\n\023Gener" + - "atePlanRequest\022\036\n\nnamespaces\030\001 \003(\tR\nname" + - "spaces\022!\n\014initial_sync\030\002 \001(\010R\013initialSyn" + - "c\022\030\n\007updates\030\003 \001(\010R\007updates\"\226\001\n\024Generate" + - "PlanResponse\0223\n\npartitions\030\001 \003(\0132\023.adiom" + - ".v1.PartitionR\npartitions\022I\n\022updates_par" + - "titions\030\002 \003(\0132\032.adiom.v1.UpdatesPartitio" + - "nR\021updatesPartitions\"\235\001\n\006Update\022#\n\002id\030\001 " + - "\003(\0132\023.adiom.v1.BsonValueR\002id\022(\n\004type\030\002 \001" + - "(\0162\024.adiom.v1.UpdateTypeR\004type\022\022\n\004data\030\003" + - " \001(\014R\004data\0220\n\024partial_update_unset\030\004 \003(\t" + - "R\022partialUpdateUnset\"\204\001\n\017ListDataRequest" + - "\0221\n\tpartition\030\001 \001(\0132\023.adiom.v1.Partition" + - "R\tpartition\022&\n\004type\030\002 \001(\0162\022.adiom.v1.Dat" + - "aTypeR\004type\022\026\n\006cursor\030\003 \001(\014R\006cursor\"G\n\020L" + - "istDataResponse\022\022\n\004data\030\001 \003(\014R\004data\022\037\n\013n" + - "ext_cursor\030\002 \001(\014R\nnextCursor\"l\n\020WriteDat" + - "aRequest\022\034\n\tnamespace\030\001 \001(\tR\tnamespace\022\022" + - "\n\004data\030\002 \003(\014R\004data\022&\n\004type\030\003 \001(\0162\022.adiom" + - ".v1.DataTypeR\004type\"\023\n\021WriteDataResponse\"" + - "\207\001\n\023WriteUpdatesRequest\022\034\n\tnamespace\030\001 \001" + - "(\tR\tnamespace\022*\n\007updates\030\002 \003(\0132\020.adiom.v" + - "1.UpdateR\007updates\022&\n\004type\030\003 \001(\0162\022.adiom." + - "v1.DataTypeR\004type\"\026\n\024WriteUpdatesRespons" + - "e\"v\n\024StreamUpdatesRequest\022\036\n\nnamespaces\030" + - "\001 \003(\tR\nnamespaces\022&\n\004type\030\002 \001(\0162\022.adiom." + - "v1.DataTypeR\004type\022\026\n\006cursor\030\003 \001(\014R\006curso" + - "r\"\262\001\n\025StreamUpdatesResponse\022*\n\007updates\030\001" + - " \003(\0132\020.adiom.v1.UpdateR\007updates\022\034\n\tnames" + - "pace\030\002 \001(\tR\tnamespace\022\037\n\013next_cursor\030\003 \001" + - "(\014R\nnextCursor\022.\n\004time\030\004 \001(\0132\032.google.pr" + - "otobuf.TimestampR\004time\"J\n\020StreamLSNReque" + - "st\022\036\n\nnamespaces\030\001 \003(\tR\nnamespaces\022\026\n\006cu" + - "rsor\030\002 \001(\014R\006cursor\"F\n\021StreamLSNResponse\022" + - "\020\n\003lsn\030\001 \001(\004R\003lsn\022\037\n\013next_cursor\030\002 \001(\014R\n" + - "nextCursor\"\031\n\027GetTransformInfoRequest\"\246\002" + - "\n\030GetTransformInfoResponse\022P\n\ntransforms" + - "\030\001 \003(\01320.adiom.v1.GetTransformInfoRespon" + - "se.TransformInfoR\ntransforms\0224\n\026use_mult" + - "iple_responses\030\002 \001(\010R\024useMultipleRespons" + - "es\032\201\001\n\rTransformInfo\0225\n\014request_type\030\001 \001" + - "(\0162\022.adiom.v1.DataTypeR\013requestType\0229\n\016r" + - "esponse_types\030\002 \003(\0162\022.adiom.v1.DataTypeR" + - "\rresponseTypes\"\343\001\n\023GetTransformRequest\022\034" + - "\n\tnamespace\030\001 \001(\tR\tnamespace\022*\n\007updates\030" + - "\002 \003(\0132\020.adiom.v1.UpdateR\007updates\022\022\n\004data" + - "\030\003 \003(\014R\004data\0225\n\014request_type\030\004 \001(\0162\022.adi" + - "om.v1.DataTypeR\013requestType\0227\n\rresponse_" + - "type\030\005 \001(\0162\022.adiom.v1.DataTypeR\014response" + - "Type\"q\n\021TransformResponse\022\034\n\tnamespace\030\001" + - " \001(\tR\tnamespace\022*\n\007updates\030\002 \003(\0132\020.adiom" + - ".v1.UpdateR\007updates\022\022\n\004data\030\003 \003(\014R\004data\"" + - "\257\001\n\024GetTransformResponse\022\034\n\tnamespace\030\001 " + - "\001(\tR\tnamespace\022*\n\007updates\030\002 \003(\0132\020.adiom." + - "v1.UpdateR\007updates\022\022\n\004data\030\003 \003(\014R\004data\0229" + - "\n\tresponses\030\004 \003(\0132\033.adiom.v1.TransformRe" + - "sponseR\tresponses*R\n\010DataType\022\025\n\021DATA_TY" + - "PE_UNKNOWN\020\000\022\030\n\024DATA_TYPE_MONGO_BSON\020\001\022\025" + - "\n\021DATA_TYPE_JSON_ID\020\002*\215\001\n\nUpdateType\022\027\n\023" + - "UPDATE_TYPE_UNKNOWN\020\000\022\026\n\022UPDATE_TYPE_INS" + - "ERT\020\001\022\026\n\022UPDATE_TYPE_UPDATE\020\002\022\026\n\022UPDATE_" + - "TYPE_DELETE\020\003\022\036\n\032UPDATE_TYPE_PARTIAL_UPD" + - "ATE\020\004B2Z0github.com/adiom-data/dsync/gen" + - "/adiom/v1;adiomv1b\006proto3" + "R\013defaultPlan\022\034\n\nget_by_ids\030\005 \001(\010R\010getBy" + + "Ids\032L\n\004Sink\022D\n\024supported_data_types\030\001 \003(" + + "\0162\022.adiom.v1.DataTypeR\022supportedDataType" + + "s\"\020\n\016GetInfoRequest\"\244\001\n\017GetInfoResponse\022" + + "\016\n\002id\030\001 \001(\tR\002id\022\027\n\007db_type\030\002 \001(\tR\006dbType" + + "\022\030\n\007version\030\003 \001(\tR\007version\022\022\n\004spec\030\004 \001(\t" + + "R\004spec\022:\n\014capabilities\030\005 \001(\0132\026.adiom.v1." + + "CapabilitiesR\014capabilities\";\n\033GetNamespa" + + "ceMetadataRequest\022\034\n\tnamespace\030\001 \001(\tR\tna" + + "mespace\"4\n\034GetNamespaceMetadataResponse\022" + + "\024\n\005count\030\001 \001(\004R\005count\"r\n\023GeneratePlanReq" + + "uest\022\036\n\nnamespaces\030\001 \003(\tR\nnamespaces\022!\n\014" + + "initial_sync\030\002 \001(\010R\013initialSync\022\030\n\007updat" + + "es\030\003 \001(\010R\007updates\"\226\001\n\024GeneratePlanRespon" + + "se\0223\n\npartitions\030\001 \003(\0132\023.adiom.v1.Partit" + + "ionR\npartitions\022I\n\022updates_partitions\030\002 " + + "\003(\0132\032.adiom.v1.UpdatesPartitionR\021updates" + + "Partitions\"\235\001\n\006Update\022#\n\002id\030\001 \003(\0132\023.adio" + + "m.v1.BsonValueR\002id\022(\n\004type\030\002 \001(\0162\024.adiom" + + ".v1.UpdateTypeR\004type\022\022\n\004data\030\003 \001(\014R\004data" + + "\0220\n\024partial_update_unset\030\004 \003(\tR\022partialU" + + "pdateUnset\"\204\001\n\017ListDataRequest\0221\n\tpartit" + + "ion\030\001 \001(\0132\023.adiom.v1.PartitionR\tpartitio" + + "n\022&\n\004type\030\002 \001(\0162\022.adiom.v1.DataTypeR\004typ" + + "e\022\026\n\006cursor\030\003 \001(\014R\006cursor\"G\n\020ListDataRes" + + "ponse\022\022\n\004data\030\001 \003(\014R\004data\022\037\n\013next_cursor" + + "\030\002 \001(\014R\nnextCursor\"l\n\020WriteDataRequest\022\034" + + "\n\tnamespace\030\001 \001(\tR\tnamespace\022\022\n\004data\030\002 \003" + + "(\014R\004data\022&\n\004type\030\003 \001(\0162\022.adiom.v1.DataTy" + + "peR\004type\"\023\n\021WriteDataResponse\"\207\001\n\023WriteU" + + "pdatesRequest\022\034\n\tnamespace\030\001 \001(\tR\tnamesp" + + "ace\022*\n\007updates\030\002 \003(\0132\020.adiom.v1.UpdateR\007" + + "updates\022&\n\004type\030\003 \001(\0162\022.adiom.v1.DataTyp" + + "eR\004type\"\026\n\024WriteUpdatesResponse\"v\n\024Strea" + + "mUpdatesRequest\022\036\n\nnamespaces\030\001 \003(\tR\nnam" + + "espaces\022&\n\004type\030\002 \001(\0162\022.adiom.v1.DataTyp" + + "eR\004type\022\026\n\006cursor\030\003 \001(\014R\006cursor\"\262\001\n\025Stre" + + "amUpdatesResponse\022*\n\007updates\030\001 \003(\0132\020.adi" + + "om.v1.UpdateR\007updates\022\034\n\tnamespace\030\002 \001(\t" + + "R\tnamespace\022\037\n\013next_cursor\030\003 \001(\014R\nnextCu" + + "rsor\022.\n\004time\030\004 \001(\0132\032.google.protobuf.Tim" + + "estampR\004time\"J\n\020StreamLSNRequest\022\036\n\nname" + + "spaces\030\001 \003(\tR\nnamespaces\022\026\n\006cursor\030\002 \001(\014" + + "R\006cursor\"F\n\021StreamLSNResponse\022\020\n\003lsn\030\001 \001" + + "(\004R\003lsn\022\037\n\013next_cursor\030\002 \001(\014R\nnextCursor" + + "\"\300\001\n\017GetByIdsRequest\022\034\n\tnamespace\030\001 \001(\tR" + + "\tnamespace\0225\n\003ids\030\002 \003(\0132#.adiom.v1.GetBy" + + "IdsRequest.IdRequestR\003ids\022&\n\004type\030\003 \001(\0162" + + "\022.adiom.v1.DataTypeR\004type\0320\n\tIdRequest\022#" + + "\n\002id\030\001 \003(\0132\023.adiom.v1.BsonValueR\002id\"s\n\020G" + + "etByIdsResponse\022;\n\004data\030\001 \003(\0132\'.adiom.v1" + + ".GetByIdsResponse.ResponseItemR\004data\032\"\n\014" + + "ResponseItem\022\022\n\004data\030\001 \001(\014R\004data\"\031\n\027GetT" + + "ransformInfoRequest\"\246\002\n\030GetTransformInfo" + + "Response\022P\n\ntransforms\030\001 \003(\01320.adiom.v1." + + "GetTransformInfoResponse.TransformInfoR\n" + + "transforms\0224\n\026use_multiple_responses\030\002 \001" + + "(\010R\024useMultipleResponses\032\201\001\n\rTransformIn" + + "fo\0225\n\014request_type\030\001 \001(\0162\022.adiom.v1.Data" + + "TypeR\013requestType\0229\n\016response_types\030\002 \003(" + + "\0162\022.adiom.v1.DataTypeR\rresponseTypes\"\343\001\n" + + "\023GetTransformRequest\022\034\n\tnamespace\030\001 \001(\tR" + + "\tnamespace\022*\n\007updates\030\002 \003(\0132\020.adiom.v1.U" + + "pdateR\007updates\022\022\n\004data\030\003 \003(\014R\004data\0225\n\014re" + + "quest_type\030\004 \001(\0162\022.adiom.v1.DataTypeR\013re" + + "questType\0227\n\rresponse_type\030\005 \001(\0162\022.adiom" + + ".v1.DataTypeR\014responseType\"q\n\021TransformR" + + "esponse\022\034\n\tnamespace\030\001 \001(\tR\tnamespace\022*\n" + + "\007updates\030\002 \003(\0132\020.adiom.v1.UpdateR\007update" + + "s\022\022\n\004data\030\003 \003(\014R\004data\"\257\001\n\024GetTransformRe" + + "sponse\022\034\n\tnamespace\030\001 \001(\tR\tnamespace\022*\n\007" + + "updates\030\002 \003(\0132\020.adiom.v1.UpdateR\007updates" + + "\022\022\n\004data\030\003 \003(\014R\004data\0229\n\tresponses\030\004 \003(\0132" + + "\033.adiom.v1.TransformResponseR\tresponses*" + + "R\n\010DataType\022\025\n\021DATA_TYPE_UNKNOWN\020\000\022\030\n\024DA" + + "TA_TYPE_MONGO_BSON\020\001\022\025\n\021DATA_TYPE_JSON_I" + + "D\020\002*\215\001\n\nUpdateType\022\027\n\023UPDATE_TYPE_UNKNOW" + + "N\020\000\022\026\n\022UPDATE_TYPE_INSERT\020\001\022\026\n\022UPDATE_TY" + + "PE_UPDATE\020\002\022\026\n\022UPDATE_TYPE_DELETE\020\003\022\036\n\032U" + + "PDATE_TYPE_PARTIAL_UPDATE\020\004B2Z0github.co" + + "m/adiom-data/dsync/gen/adiom/v1;adiomv1b" + + "\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -24006,7 +27168,7 @@ public adiom.v1.Messages.GetTransformResponse getDefaultInstanceForType() { internal_static_adiom_v1_Capabilities_Source_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_Capabilities_Source_descriptor, - new java.lang.String[] { "SupportedDataTypes", "LsnStream", "MultiNamespacePlan", "DefaultPlan", }); + new java.lang.String[] { "SupportedDataTypes", "LsnStream", "MultiNamespacePlan", "DefaultPlan", "GetByIds", }); internal_static_adiom_v1_Capabilities_Sink_descriptor = internal_static_adiom_v1_Capabilities_descriptor.getNestedTypes().get(1); internal_static_adiom_v1_Capabilities_Sink_fieldAccessorTable = new @@ -24115,14 +27277,38 @@ public adiom.v1.Messages.GetTransformResponse getDefaultInstanceForType() { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_StreamLSNResponse_descriptor, new java.lang.String[] { "Lsn", "NextCursor", }); - internal_static_adiom_v1_GetTransformInfoRequest_descriptor = + internal_static_adiom_v1_GetByIdsRequest_descriptor = getDescriptor().getMessageTypes().get(21); + internal_static_adiom_v1_GetByIdsRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_adiom_v1_GetByIdsRequest_descriptor, + new java.lang.String[] { "Namespace", "Ids", "Type", }); + internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor = + internal_static_adiom_v1_GetByIdsRequest_descriptor.getNestedTypes().get(0); + internal_static_adiom_v1_GetByIdsRequest_IdRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_adiom_v1_GetByIdsRequest_IdRequest_descriptor, + new java.lang.String[] { "Id", }); + internal_static_adiom_v1_GetByIdsResponse_descriptor = + getDescriptor().getMessageTypes().get(22); + internal_static_adiom_v1_GetByIdsResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_adiom_v1_GetByIdsResponse_descriptor, + new java.lang.String[] { "Data", }); + internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor = + internal_static_adiom_v1_GetByIdsResponse_descriptor.getNestedTypes().get(0); + internal_static_adiom_v1_GetByIdsResponse_ResponseItem_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_adiom_v1_GetByIdsResponse_ResponseItem_descriptor, + new java.lang.String[] { "Data", }); + internal_static_adiom_v1_GetTransformInfoRequest_descriptor = + getDescriptor().getMessageTypes().get(23); internal_static_adiom_v1_GetTransformInfoRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_GetTransformInfoRequest_descriptor, new java.lang.String[] { }); internal_static_adiom_v1_GetTransformInfoResponse_descriptor = - getDescriptor().getMessageTypes().get(22); + getDescriptor().getMessageTypes().get(24); internal_static_adiom_v1_GetTransformInfoResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_GetTransformInfoResponse_descriptor, @@ -24134,19 +27320,19 @@ public adiom.v1.Messages.GetTransformResponse getDefaultInstanceForType() { internal_static_adiom_v1_GetTransformInfoResponse_TransformInfo_descriptor, new java.lang.String[] { "RequestType", "ResponseTypes", }); internal_static_adiom_v1_GetTransformRequest_descriptor = - getDescriptor().getMessageTypes().get(23); + getDescriptor().getMessageTypes().get(25); internal_static_adiom_v1_GetTransformRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_GetTransformRequest_descriptor, new java.lang.String[] { "Namespace", "Updates", "Data", "RequestType", "ResponseType", }); internal_static_adiom_v1_TransformResponse_descriptor = - getDescriptor().getMessageTypes().get(24); + getDescriptor().getMessageTypes().get(26); internal_static_adiom_v1_TransformResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_TransformResponse_descriptor, new java.lang.String[] { "Namespace", "Updates", "Data", }); internal_static_adiom_v1_GetTransformResponse_descriptor = - getDescriptor().getMessageTypes().get(25); + getDescriptor().getMessageTypes().get(27); internal_static_adiom_v1_GetTransformResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_adiom_v1_GetTransformResponse_descriptor, diff --git a/proto/adiom/v1/adiom.proto b/proto/adiom/v1/adiom.proto index 2c4b4c6f..38505968 100644 --- a/proto/adiom/v1/adiom.proto +++ b/proto/adiom/v1/adiom.proto @@ -18,6 +18,7 @@ service ConnectorService { rpc ListData(ListDataRequest) returns (ListDataResponse); rpc StreamUpdates(StreamUpdatesRequest) returns (stream StreamUpdatesResponse); rpc StreamLSN(StreamLSNRequest) returns (stream StreamLSNResponse); + rpc GetByIds(GetByIdsRequest) returns (GetByIdsResponse); } service TransformService { diff --git a/proto/adiom/v1/messages.proto b/proto/adiom/v1/messages.proto index e3ebe8e1..9ed731e5 100644 --- a/proto/adiom/v1/messages.proto +++ b/proto/adiom/v1/messages.proto @@ -55,6 +55,9 @@ message Capabilities { // allows requesting a plan without specifying any namespaces // the behavior is up to the source- usually it means all available namespaces bool default_plan = 4; + + // whether the GetByIds endpoint is functional + bool get_by_ids = 5; } message Sink { repeated DataType supported_data_types = 1; @@ -159,6 +162,22 @@ message StreamLSNResponse { bytes next_cursor = 2; } +message GetByIdsRequest { + message IdRequest { + repeated BsonValue id = 1; + } + string namespace = 1; + repeated IdRequest ids = 2; + DataType type = 3; +} + +message GetByIdsResponse { + message ResponseItem { + bytes data = 1; // empty if not found + } + repeated ResponseItem data = 1; // order should be the same as the request ids +} + message GetTransformInfoRequest {} message GetTransformInfoResponse {