diff --git a/CLAUDE.md b/CLAUDE.md index 081b6c4..a398e75 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -218,7 +218,7 @@ Containers must include an `agent-manifest` label in image metadata with: The protobuf imports OpenRTB v2.6 definitions: ```protobuf -import "com/iabtechlab/openrtb/v2.6/openrtb.proto"; +import "com/iabtechlab/openrtb/v2/openrtb.proto"; ``` You'll need the IAB Tech Lab OpenRTB protobuf definitions from: diff --git a/Makefile b/Makefile index 5f032ff..b5b9598 100644 --- a/Makefile +++ b/Makefile @@ -40,16 +40,7 @@ build-all: build build-rust # Protobuf targets bindings: - for x in ${LANGUAGES}; do \ - protoc --proto_path=. \ - --$${x}_out=. \ - --experimental_editions \ - openrtb.proto agenticrtbframework.proto; \ - protoc --proto_path=. \ - --$${x}_out=. \ - --$${x}-grpc_out=require_unimplemented_servers=false:. \ - agenticrtbframeworkservices.proto; \ - done + scripts/generate.sh check: prototool lint diff --git a/pkg/pb/artf/agenticrtbframework.pb.go b/pkg/pb/artf/agenticrtbframework.pb.go index bf84f67..8019bfc 100644 --- a/pkg/pb/artf/agenticrtbframework.pb.go +++ b/pkg/pb/artf/agenticrtbframework.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.5 -// protoc v3.21.12 +// protoc-gen-go v1.36.12 +// protoc v5.29.3 // source: agenticrtbframework.proto package artf @@ -26,16 +26,22 @@ type Lifecycle int32 const ( // Placeholder to Define Programmatic Auction Definition Stages - Lifecycle_LIFECYCLE_UNSPECIFIED Lifecycle = 0 + Lifecycle_LIFECYCLE_UNSPECIFIED Lifecycle = 0 + Lifecycle_LIFECYCLE_PUBLISHER_BID_REQUEST Lifecycle = 1 + Lifecycle_LIFECYCLE_DSP_BID_RESPONSE Lifecycle = 2 ) // Enum value maps for Lifecycle. var ( Lifecycle_name = map[int32]string{ 0: "LIFECYCLE_UNSPECIFIED", + 1: "LIFECYCLE_PUBLISHER_BID_REQUEST", + 2: "LIFECYCLE_DSP_BID_RESPONSE", } Lifecycle_value = map[string]int32{ - "LIFECYCLE_UNSPECIFIED": 0, + "LIFECYCLE_UNSPECIFIED": 0, + "LIFECYCLE_PUBLISHER_BID_REQUEST": 1, + "LIFECYCLE_DSP_BID_RESPONSE": 2, } ) @@ -61,16 +67,6 @@ func (x Lifecycle) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Lifecycle) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Lifecycle(num) - return nil -} - // Deprecated: Use Lifecycle.Descriptor instead. func (Lifecycle) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{0} @@ -123,16 +119,6 @@ func (x Operation) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Operation) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Operation(num) - return nil -} - // Deprecated: Use Operation.Descriptor instead. func (Operation) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} @@ -156,6 +142,8 @@ const ( Intent_BID_SHADE Intent = 6 // Add metrics to an impression Intent_ADD_METRICS Intent = 7 + // Add extended content IDs + Intent_ADD_CIDS Intent = 8 ) // Enum value maps for Intent. @@ -169,6 +157,7 @@ var ( 5: "ADJUST_DEAL_MARGIN", 6: "BID_SHADE", 7: "ADD_METRICS", + 8: "ADD_CIDS", } Intent_value = map[string]int32{ "INTENT_UNSPECIFIED": 0, @@ -179,6 +168,7 @@ var ( "ADJUST_DEAL_MARGIN": 5, "BID_SHADE": 6, "ADD_METRICS": 7, + "ADD_CIDS": 8, } ) @@ -204,21 +194,66 @@ func (x Intent) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Intent) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Intent(num) - return nil -} - // Deprecated: Use Intent.Descriptor instead. func (Intent) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} } +type Originator_Type int32 + +const ( + Originator_TYPE_UNSPECIFIED Originator_Type = 0 + Originator_TYPE_PUBLISHER Originator_Type = 1 + Originator_TYPE_SSP Originator_Type = 2 + Originator_TYPE_EXCHANGE Originator_Type = 3 + Originator_TYPE_DSP Originator_Type = 4 +) + +// Enum value maps for Originator_Type. +var ( + Originator_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "TYPE_PUBLISHER", + 2: "TYPE_SSP", + 3: "TYPE_EXCHANGE", + 4: "TYPE_DSP", + } + Originator_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "TYPE_PUBLISHER": 1, + "TYPE_SSP": 2, + "TYPE_EXCHANGE": 3, + "TYPE_DSP": 4, + } +) + +func (x Originator_Type) Enum() *Originator_Type { + p := new(Originator_Type) + *p = x + return p +} + +func (x Originator_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Originator_Type) Descriptor() protoreflect.EnumDescriptor { + return file_agenticrtbframework_proto_enumTypes[3].Descriptor() +} + +func (Originator_Type) Type() protoreflect.EnumType { + return &file_agenticrtbframework_proto_enumTypes[3] +} + +func (x Originator_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Originator_Type.Descriptor instead. +func (Originator_Type) EnumDescriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{2, 0} +} + // The type of margin adjustment type Margin_CalculationType int32 @@ -252,27 +287,17 @@ func (x Margin_CalculationType) String() string { } func (Margin_CalculationType) Descriptor() protoreflect.EnumDescriptor { - return file_agenticrtbframework_proto_enumTypes[3].Descriptor() + return file_agenticrtbframework_proto_enumTypes[4].Descriptor() } func (Margin_CalculationType) Type() protoreflect.EnumType { - return &file_agenticrtbframework_proto_enumTypes[3] + return &file_agenticrtbframework_proto_enumTypes[4] } func (x Margin_CalculationType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Margin_CalculationType) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Margin_CalculationType(num) - return nil -} - // Deprecated: Use Margin_CalculationType.Descriptor instead. func (Margin_CalculationType) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{7, 0} @@ -280,24 +305,24 @@ func (Margin_CalculationType) EnumDescriptor() ([]byte, []int) { type RTBRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // ENUM as per Programmatic Auction Definition IAB TL doc/spec - Lifecycle *Lifecycle `protobuf:"varint,1,req,name=lifecycle,enum=com.iabtechlab.bidstream.mutation.v1.Lifecycle" json:"lifecycle,omitempty"` + // As per Programmatic Auction Definition IAB TL doc/spec + Lifecycle *Lifecycle `protobuf:"varint,1,opt,name=lifecycle,enum=com.iabtechlab.bidstream.mutation.v1.Lifecycle" json:"lifecycle,omitempty"` // ID of the extension point request, assigned by the exchange, and unique for the // exchange's subsequent tracking of the responses. The exchange may use // different values for different recipients. - // REQUIRED by the RTB specification. - Id *string `protobuf:"bytes,2,req,name=id" json:"id,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` // Maximum time in milliseconds the exchange allows for mutations to be received including latency to avoid timeout - // REQUIRED by the RTB specification. - Tmax *int32 `protobuf:"varint,3,req,name=tmax" json:"tmax,omitempty"` + Tmax *int32 `protobuf:"varint,3,opt,name=tmax" json:"tmax,omitempty"` // Bid request - // REQUIRED by the RTB specification. - BidRequest *openrtb.BidRequest `protobuf:"bytes,4,req,name=bid_request,json=bidRequest" json:"bid_request,omitempty"` + BidRequest *openrtb.BidRequest `protobuf:"bytes,4,opt,name=bid_request,json=bidRequest" json:"bid_request,omitempty"` // Bid response - // OPTIONAL by the RTB specification. BidResponse *openrtb.BidResponse `protobuf:"bytes,5,opt,name=bid_response,json=bidResponse" json:"bid_response,omitempty"` + // Business entity that created and owns the enclosed BidRequest or BidResponse + Originator *Originator `protobuf:"bytes,6,opt,name=originator" json:"originator,omitempty"` + // List of intents the server is eligibible to send back + ApplicableIntents []Intent `protobuf:"varint,7,rep,packed,name=applicable_intents,json=applicableIntents,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"applicable_intents,omitempty"` // Extension fields - Ext *Extensions `protobuf:"bytes,6,opt,name=ext" json:"ext,omitempty"` + Ext *RTBRequest_Ext `protobuf:"bytes,99,opt,name=ext" json:"ext,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -367,55 +392,31 @@ func (x *RTBRequest) GetBidResponse() *openrtb.BidResponse { return nil } -func (x *RTBRequest) GetExt() *Extensions { +func (x *RTBRequest) GetOriginator() *Originator { if x != nil { - return x.Ext + return x.Originator } return nil } -type Extensions struct { - state protoimpl.MessageState `protogen:"open.v1"` - extensionFields protoimpl.ExtensionFields - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Extensions) Reset() { - *x = Extensions{} - mi := &file_agenticrtbframework_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Extensions) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Extensions) ProtoMessage() {} - -func (x *Extensions) ProtoReflect() protoreflect.Message { - mi := &file_agenticrtbframework_proto_msgTypes[1] +func (x *RTBRequest) GetApplicableIntents() []Intent { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.ApplicableIntents } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Extensions.ProtoReflect.Descriptor instead. -func (*Extensions) Descriptor() ([]byte, []int) { - return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} +func (x *RTBRequest) GetExt() *RTBRequest_Ext { + if x != nil { + return x.Ext + } + return nil } type RTBResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // ID of the extension point request to which this is a response. - // REQUIRED by the RTB specification. - Id *string `protobuf:"bytes,1,req,name=id" json:"id,omitempty"` + Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` // List of mutations suggesting changes to be applied Mutations []*Mutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"` // Metadata about the response @@ -426,7 +427,7 @@ type RTBResponse struct { func (x *RTBResponse) Reset() { *x = RTBResponse{} - mi := &file_agenticrtbframework_proto_msgTypes[2] + mi := &file_agenticrtbframework_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -438,7 +439,7 @@ func (x *RTBResponse) String() string { func (*RTBResponse) ProtoMessage() {} func (x *RTBResponse) ProtoReflect() protoreflect.Message { - mi := &file_agenticrtbframework_proto_msgTypes[2] + mi := &file_agenticrtbframework_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -451,7 +452,7 @@ func (x *RTBResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RTBResponse.ProtoReflect.Descriptor instead. func (*RTBResponse) Descriptor() ([]byte, []int) { - return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} + return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} } func (x *RTBResponse) GetId() string { @@ -475,14 +476,66 @@ func (x *RTBResponse) GetMetadata() *Metadata { return nil } +type Originator struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type *Originator_Type `protobuf:"varint,1,opt,name=type,enum=com.iabtechlab.bidstream.mutation.v1.Originator_Type" json:"type,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Originator) Reset() { + *x = Originator{} + mi := &file_agenticrtbframework_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Originator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Originator) ProtoMessage() {} + +func (x *Originator) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[2] + 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 Originator.ProtoReflect.Descriptor instead. +func (*Originator) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} +} + +func (x *Originator) GetType() Originator_Type { + if x != nil && x.Type != nil { + return *x.Type + } + return Originator_TYPE_UNSPECIFIED +} + +func (x *Originator) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + type Mutation struct { state protoimpl.MessageState `protogen:"open.v1"` // The purpose of the mutation - Intent *Intent `protobuf:"varint,1,req,name=intent,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"intent,omitempty"` + Intent *Intent `protobuf:"varint,1,opt,name=intent,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"intent,omitempty"` // Defines the operation to perform (e.g. add, remove, replace) on the target data at the given path - Op *Operation `protobuf:"varint,2,req,name=op,enum=com.iabtechlab.bidstream.mutation.v1.Operation" json:"op,omitempty"` + Op *Operation `protobuf:"varint,2,opt,name=op,enum=com.iabtechlab.bidstream.mutation.v1.Operation" json:"op,omitempty"` // The semantic business domain of where the operation will be applied - Path *string `protobuf:"bytes,3,req,name=path" json:"path,omitempty"` + Path *string `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` // The structure of value depends on the specified intent. // Reserve 100+ for intent-specific payloads // @@ -491,7 +544,8 @@ type Mutation struct { // *Mutation_Ids // *Mutation_AdjustDeal // *Mutation_AdjustBid - // *Mutation_AddMetrics + // *Mutation_Metrics + // *Mutation_ContentData Value isMutation_Value `protobuf_oneof:"value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -582,10 +636,19 @@ func (x *Mutation) GetAdjustBid() *AdjustBidPayload { return nil } -func (x *Mutation) GetAddMetrics() *AddMetricsPayload { +func (x *Mutation) GetMetrics() *MetricsPayload { if x != nil { - if x, ok := x.Value.(*Mutation_AddMetrics); ok { - return x.AddMetrics + if x, ok := x.Value.(*Mutation_Metrics); ok { + return x.Metrics + } + } + return nil +} + +func (x *Mutation) GetContentData() *DataPayload { + if x != nil { + if x, ok := x.Value.(*Mutation_ContentData); ok { + return x.ContentData } } return nil @@ -610,9 +673,14 @@ type Mutation_AdjustBid struct { AdjustBid *AdjustBidPayload `protobuf:"bytes,102,opt,name=adjust_bid,json=adjustBid,oneof"` } -type Mutation_AddMetrics struct { - // Add metrics or telemetry data - AddMetrics *AddMetricsPayload `protobuf:"bytes,103,opt,name=add_metrics,json=addMetrics,oneof"` +type Mutation_Metrics struct { + // Metrics or telemetry data + Metrics *MetricsPayload `protobuf:"bytes,103,opt,name=metrics,oneof"` +} + +type Mutation_ContentData struct { + // Content data + ContentData *DataPayload `protobuf:"bytes,104,opt,name=content_data,json=contentData,oneof"` } func (*Mutation_Ids) isMutation_Value() {} @@ -621,7 +689,9 @@ func (*Mutation_AdjustDeal) isMutation_Value() {} func (*Mutation_AdjustBid) isMutation_Value() {} -func (*Mutation_AddMetrics) isMutation_Value() {} +func (*Mutation_Metrics) isMutation_Value() {} + +func (*Mutation_ContentData) isMutation_Value() {} type Metadata struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -874,7 +944,7 @@ func (x *AdjustBidPayload) GetPrice() float64 { return 0 } -type AddMetricsPayload struct { +type MetricsPayload struct { state protoimpl.MessageState `protogen:"open.v1"` // List of metrics to add Metric []*openrtb.BidRequest_Imp_Metric `protobuf:"bytes,1,rep,name=metric" json:"metric,omitempty"` @@ -882,20 +952,20 @@ type AddMetricsPayload struct { sizeCache protoimpl.SizeCache } -func (x *AddMetricsPayload) Reset() { - *x = AddMetricsPayload{} +func (x *MetricsPayload) Reset() { + *x = MetricsPayload{} mi := &file_agenticrtbframework_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *AddMetricsPayload) String() string { +func (x *MetricsPayload) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddMetricsPayload) ProtoMessage() {} +func (*MetricsPayload) ProtoMessage() {} -func (x *AddMetricsPayload) ProtoReflect() protoreflect.Message { +func (x *MetricsPayload) ProtoReflect() protoreflect.Message { mi := &file_agenticrtbframework_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -907,163 +977,186 @@ func (x *AddMetricsPayload) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddMetricsPayload.ProtoReflect.Descriptor instead. -func (*AddMetricsPayload) Descriptor() ([]byte, []int) { +// Deprecated: Use MetricsPayload.ProtoReflect.Descriptor instead. +func (*MetricsPayload) Descriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{9} } -func (x *AddMetricsPayload) GetMetric() []*openrtb.BidRequest_Imp_Metric { +func (x *MetricsPayload) GetMetric() []*openrtb.BidRequest_Imp_Metric { if x != nil { return x.Metric } return nil } +type DataPayload struct { + state protoimpl.MessageState `protogen:"open.v1"` + // List of data to add + Data []*openrtb.BidRequest_Data `protobuf:"bytes,1,rep,name=data" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DataPayload) Reset() { + *x = DataPayload{} + mi := &file_agenticrtbframework_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DataPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataPayload) ProtoMessage() {} + +func (x *DataPayload) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[10] + 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 DataPayload.ProtoReflect.Descriptor instead. +func (*DataPayload) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{10} +} + +func (x *DataPayload) GetData() []*openrtb.BidRequest_Data { + if x != nil { + return x.Data + } + return nil +} + +type RTBRequest_Ext struct { + state protoimpl.MessageState `protogen:"open.v1"` + extensionFields protoimpl.ExtensionFields + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RTBRequest_Ext) Reset() { + *x = RTBRequest_Ext{} + mi := &file_agenticrtbframework_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RTBRequest_Ext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RTBRequest_Ext) ProtoMessage() {} + +func (x *RTBRequest_Ext) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[11] + 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 RTBRequest_Ext.ProtoReflect.Descriptor instead. +func (*RTBRequest_Ext) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{0, 0} +} + var File_agenticrtbframework_proto protoreflect.FileDescriptor -var file_agenticrtbframework_proto_rawDesc = string([]byte{ - 0x0a, 0x19, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x72, 0x74, 0x62, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x24, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x1a, 0x27, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, - 0x62, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x02, 0x0a, 0x0a, 0x52, - 0x54, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x6c, 0x69, 0x66, - 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, - 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x09, 0x6c, - 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x02, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6d, 0x61, 0x78, - 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6d, 0x61, 0x78, 0x12, 0x46, 0x0a, 0x0b, - 0x62, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x02, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, - 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x62, 0x69, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0b, 0x62, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, - 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x03, - 0x65, 0x78, 0x74, 0x22, 0x16, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2a, 0x08, 0x08, 0x64, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x0b, - 0x52, 0x54, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x6d, - 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, - 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x08, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x02, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, - 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, - 0x20, 0x02, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, - 0x03, 0x69, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x44, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x03, - 0x69, 0x64, 0x73, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x64, 0x65, - 0x61, 0x6c, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x12, - 0x57, 0x0a, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x66, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, - 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x42, 0x69, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x09, 0x61, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x42, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, - 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, 0x0a, - 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x1c, 0x0a, 0x0a, 0x49, 0x44, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x75, 0x0a, - 0x11, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x44, - 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x52, 0x06, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x22, 0xb0, 0x01, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x67, 0x0a, 0x10, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x27, - 0x0a, 0x0f, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x4d, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, - 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x42, 0x69, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, - 0x70, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x2a, 0x26, 0x0a, 0x09, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x19, 0x0a, - 0x15, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x2a, 0x66, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, - 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x03, - 0x2a, 0xae, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x49, - 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, - 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x12, - 0x0a, 0x0e, 0x53, 0x55, 0x50, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x53, - 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x5f, 0x44, 0x45, 0x41, - 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x44, 0x4a, - 0x55, 0x53, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x10, - 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x44, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x45, 0x10, 0x06, - 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x44, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, - 0x07, 0x32, 0x88, 0x01, 0x0a, 0x11, 0x52, 0x54, 0x42, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, - 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x54, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x54, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x39, 0x5a, 0x37, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x2d, 0x72, 0x74, - 0x62, 0x2d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x62, 0x2f, 0x61, 0x72, 0x74, 0x66, -}) +const file_agenticrtbframework_proto_rawDesc = "" + + "\n" + + "\x19agenticrtbframework.proto\x12$com.iabtechlab.bidstream.mutation.v1\x1a'com/iabtechlab/openrtb/v2/openrtb.proto\"\x9b\x04\n" + + "\n" + + "RTBRequest\x12M\n" + + "\tlifecycle\x18\x01 \x01(\x0e2/.com.iabtechlab.bidstream.mutation.v1.LifecycleR\tlifecycle\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x12\n" + + "\x04tmax\x18\x03 \x01(\x05R\x04tmax\x12F\n" + + "\vbid_request\x18\x04 \x01(\v2%.com.iabtechlab.openrtb.v2.BidRequestR\n" + + "bidRequest\x12I\n" + + "\fbid_response\x18\x05 \x01(\v2&.com.iabtechlab.openrtb.v2.BidResponseR\vbidResponse\x12P\n" + + "\n" + + "originator\x18\x06 \x01(\v20.com.iabtechlab.bidstream.mutation.v1.OriginatorR\n" + + "originator\x12[\n" + + "\x12applicable_intents\x18\a \x03(\x0e2,.com.iabtechlab.bidstream.mutation.v1.IntentR\x11applicableIntents\x12F\n" + + "\x03ext\x18c \x01(\v24.com.iabtechlab.bidstream.mutation.v1.RTBRequest.ExtR\x03ext\x1a\x10\n" + + "\x03Ext*\t\b\xf4\x03\x10\x80\x80\x80\x80\x02\"\xb7\x01\n" + + "\vRTBResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12L\n" + + "\tmutations\x18\x02 \x03(\v2..com.iabtechlab.bidstream.mutation.v1.MutationR\tmutations\x12J\n" + + "\bmetadata\x18\x03 \x01(\v2..com.iabtechlab.bidstream.mutation.v1.MetadataR\bmetadata\"\xc8\x01\n" + + "\n" + + "Originator\x12I\n" + + "\x04type\x18\x01 \x01(\x0e25.com.iabtechlab.bidstream.mutation.v1.Originator.TypeR\x04type\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"_\n" + + "\x04Type\x12\x14\n" + + "\x10TYPE_UNSPECIFIED\x10\x00\x12\x12\n" + + "\x0eTYPE_PUBLISHER\x10\x01\x12\f\n" + + "\bTYPE_SSP\x10\x02\x12\x11\n" + + "\rTYPE_EXCHANGE\x10\x03\x12\f\n" + + "\bTYPE_DSP\x10\x04\"\xdb\x04\n" + + "\bMutation\x12D\n" + + "\x06intent\x18\x01 \x01(\x0e2,.com.iabtechlab.bidstream.mutation.v1.IntentR\x06intent\x12?\n" + + "\x02op\x18\x02 \x01(\x0e2/.com.iabtechlab.bidstream.mutation.v1.OperationR\x02op\x12\x12\n" + + "\x04path\x18\x03 \x01(\tR\x04path\x12D\n" + + "\x03ids\x18d \x01(\v20.com.iabtechlab.bidstream.mutation.v1.IDsPayloadH\x00R\x03ids\x12Z\n" + + "\vadjust_deal\x18e \x01(\v27.com.iabtechlab.bidstream.mutation.v1.AdjustDealPayloadH\x00R\n" + + "adjustDeal\x12W\n" + + "\n" + + "adjust_bid\x18f \x01(\v26.com.iabtechlab.bidstream.mutation.v1.AdjustBidPayloadH\x00R\tadjustBid\x12P\n" + + "\ametrics\x18g \x01(\v24.com.iabtechlab.bidstream.mutation.v1.MetricsPayloadH\x00R\ametrics\x12V\n" + + "\fcontent_data\x18h \x01(\v21.com.iabtechlab.bidstream.mutation.v1.DataPayloadH\x00R\vcontentDataB\a\n" + + "\x05valueJ\x06\b\xe8\a\x10\xd0\x0f\"P\n" + + "\bMetadata\x12\x1f\n" + + "\vapi_version\x18\x01 \x01(\tR\n" + + "apiVersion\x12#\n" + + "\rmodel_version\x18\x02 \x01(\tR\fmodelVersion\"\x1c\n" + + "\n" + + "IDsPayload\x12\x0e\n" + + "\x02id\x18\x01 \x03(\tR\x02id\"u\n" + + "\x11AdjustDealPayload\x12\x1a\n" + + "\bbidfloor\x18\x01 \x01(\x01R\bbidfloor\x12D\n" + + "\x06margin\x18\x02 \x01(\v2,.com.iabtechlab.bidstream.mutation.v1.MarginR\x06margin\"\xb0\x01\n" + + "\x06Margin\x12\x14\n" + + "\x05value\x18\x01 \x01(\x01R\x05value\x12g\n" + + "\x10calculation_type\x18\x02 \x01(\x0e2<.com.iabtechlab.bidstream.mutation.v1.Margin.CalculationTypeR\x0fcalculationType\"'\n" + + "\x0fCalculationType\x12\a\n" + + "\x03CPM\x10\x00\x12\v\n" + + "\aPERCENT\x10\x01\"(\n" + + "\x10AdjustBidPayload\x12\x14\n" + + "\x05price\x18\x01 \x01(\x01R\x05price\"Z\n" + + "\x0eMetricsPayload\x12H\n" + + "\x06metric\x18\x01 \x03(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.MetricR\x06metric\"M\n" + + "\vDataPayload\x12>\n" + + "\x04data\x18\x01 \x03(\v2*.com.iabtechlab.openrtb.v2.BidRequest.DataR\x04data*k\n" + + "\tLifecycle\x12\x19\n" + + "\x15LIFECYCLE_UNSPECIFIED\x10\x00\x12#\n" + + "\x1fLIFECYCLE_PUBLISHER_BID_REQUEST\x10\x01\x12\x1e\n" + + "\x1aLIFECYCLE_DSP_BID_RESPONSE\x10\x02*f\n" + + "\tOperation\x12\x19\n" + + "\x15OPERATION_UNSPECIFIED\x10\x00\x12\x11\n" + + "\rOPERATION_ADD\x10\x01\x12\x14\n" + + "\x10OPERATION_REMOVE\x10\x02\x12\x15\n" + + "\x11OPERATION_REPLACE\x10\x03*\xc4\x01\n" + + "\x06Intent\x12\x16\n" + + "\x12INTENT_UNSPECIFIED\x10\x00\x12\x15\n" + + "\x11ACTIVATE_SEGMENTS\x10\x01\x12\x12\n" + + "\x0eACTIVATE_DEALS\x10\x02\x12\x12\n" + + "\x0eSUPPRESS_DEALS\x10\x03\x12\x15\n" + + "\x11ADJUST_DEAL_FLOOR\x10\x04\x12\x16\n" + + "\x12ADJUST_DEAL_MARGIN\x10\x05\x12\r\n" + + "\tBID_SHADE\x10\x06\x12\x0f\n" + + "\vADD_METRICS\x10\a\x12\f\n" + + "\bADD_CIDS\x10\b\"\x06\b\xe8\a\x10\xcf\x0fB9Z7github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artfb\beditionsp\xe8\a" var ( file_agenticrtbframework_proto_rawDescOnce sync.Once @@ -1077,50 +1170,57 @@ func file_agenticrtbframework_proto_rawDescGZIP() []byte { return file_agenticrtbframework_proto_rawDescData } -var file_agenticrtbframework_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_agenticrtbframework_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_agenticrtbframework_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_agenticrtbframework_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_agenticrtbframework_proto_goTypes = []any{ (Lifecycle)(0), // 0: com.iabtechlab.bidstream.mutation.v1.Lifecycle (Operation)(0), // 1: com.iabtechlab.bidstream.mutation.v1.Operation (Intent)(0), // 2: com.iabtechlab.bidstream.mutation.v1.Intent - (Margin_CalculationType)(0), // 3: com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType - (*RTBRequest)(nil), // 4: com.iabtechlab.bidstream.mutation.v1.RTBRequest - (*Extensions)(nil), // 5: com.iabtechlab.bidstream.mutation.v1.Extensions + (Originator_Type)(0), // 3: com.iabtechlab.bidstream.mutation.v1.Originator.Type + (Margin_CalculationType)(0), // 4: com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType + (*RTBRequest)(nil), // 5: com.iabtechlab.bidstream.mutation.v1.RTBRequest (*RTBResponse)(nil), // 6: com.iabtechlab.bidstream.mutation.v1.RTBResponse - (*Mutation)(nil), // 7: com.iabtechlab.bidstream.mutation.v1.Mutation - (*Metadata)(nil), // 8: com.iabtechlab.bidstream.mutation.v1.Metadata - (*IDsPayload)(nil), // 9: com.iabtechlab.bidstream.mutation.v1.IDsPayload - (*AdjustDealPayload)(nil), // 10: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload - (*Margin)(nil), // 11: com.iabtechlab.bidstream.mutation.v1.Margin - (*AdjustBidPayload)(nil), // 12: com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload - (*AddMetricsPayload)(nil), // 13: com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload - (*openrtb.BidRequest)(nil), // 14: com.iabtechlab.openrtb.v2.BidRequest - (*openrtb.BidResponse)(nil), // 15: com.iabtechlab.openrtb.v2.BidResponse - (*openrtb.BidRequest_Imp_Metric)(nil), // 16: com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + (*Originator)(nil), // 7: com.iabtechlab.bidstream.mutation.v1.Originator + (*Mutation)(nil), // 8: com.iabtechlab.bidstream.mutation.v1.Mutation + (*Metadata)(nil), // 9: com.iabtechlab.bidstream.mutation.v1.Metadata + (*IDsPayload)(nil), // 10: com.iabtechlab.bidstream.mutation.v1.IDsPayload + (*AdjustDealPayload)(nil), // 11: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload + (*Margin)(nil), // 12: com.iabtechlab.bidstream.mutation.v1.Margin + (*AdjustBidPayload)(nil), // 13: com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload + (*MetricsPayload)(nil), // 14: com.iabtechlab.bidstream.mutation.v1.MetricsPayload + (*DataPayload)(nil), // 15: com.iabtechlab.bidstream.mutation.v1.DataPayload + (*RTBRequest_Ext)(nil), // 16: com.iabtechlab.bidstream.mutation.v1.RTBRequest.Ext + (*openrtb.BidRequest)(nil), // 17: com.iabtechlab.openrtb.v2.BidRequest + (*openrtb.BidResponse)(nil), // 18: com.iabtechlab.openrtb.v2.BidResponse + (*openrtb.BidRequest_Imp_Metric)(nil), // 19: com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + (*openrtb.BidRequest_Data)(nil), // 20: com.iabtechlab.openrtb.v2.BidRequest.Data } var file_agenticrtbframework_proto_depIdxs = []int32{ 0, // 0: com.iabtechlab.bidstream.mutation.v1.RTBRequest.lifecycle:type_name -> com.iabtechlab.bidstream.mutation.v1.Lifecycle - 14, // 1: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_request:type_name -> com.iabtechlab.openrtb.v2.BidRequest - 15, // 2: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_response:type_name -> com.iabtechlab.openrtb.v2.BidResponse - 5, // 3: com.iabtechlab.bidstream.mutation.v1.RTBRequest.ext:type_name -> com.iabtechlab.bidstream.mutation.v1.Extensions - 7, // 4: com.iabtechlab.bidstream.mutation.v1.RTBResponse.mutations:type_name -> com.iabtechlab.bidstream.mutation.v1.Mutation - 8, // 5: com.iabtechlab.bidstream.mutation.v1.RTBResponse.metadata:type_name -> com.iabtechlab.bidstream.mutation.v1.Metadata - 2, // 6: com.iabtechlab.bidstream.mutation.v1.Mutation.intent:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent - 1, // 7: com.iabtechlab.bidstream.mutation.v1.Mutation.op:type_name -> com.iabtechlab.bidstream.mutation.v1.Operation - 9, // 8: com.iabtechlab.bidstream.mutation.v1.Mutation.ids:type_name -> com.iabtechlab.bidstream.mutation.v1.IDsPayload - 10, // 9: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_deal:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload - 12, // 10: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_bid:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload - 13, // 11: com.iabtechlab.bidstream.mutation.v1.Mutation.add_metrics:type_name -> com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload - 11, // 12: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload.margin:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin - 3, // 13: com.iabtechlab.bidstream.mutation.v1.Margin.calculation_type:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType - 16, // 14: com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload.metric:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric - 4, // 15: com.iabtechlab.bidstream.mutation.v1.RTBExtensionPoint.GetMutations:input_type -> com.iabtechlab.bidstream.mutation.v1.RTBRequest - 6, // 16: com.iabtechlab.bidstream.mutation.v1.RTBExtensionPoint.GetMutations:output_type -> com.iabtechlab.bidstream.mutation.v1.RTBResponse - 16, // [16:17] is the sub-list for method output_type - 15, // [15:16] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 17, // 1: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_request:type_name -> com.iabtechlab.openrtb.v2.BidRequest + 18, // 2: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_response:type_name -> com.iabtechlab.openrtb.v2.BidResponse + 7, // 3: com.iabtechlab.bidstream.mutation.v1.RTBRequest.originator:type_name -> com.iabtechlab.bidstream.mutation.v1.Originator + 2, // 4: com.iabtechlab.bidstream.mutation.v1.RTBRequest.applicable_intents:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent + 16, // 5: com.iabtechlab.bidstream.mutation.v1.RTBRequest.ext:type_name -> com.iabtechlab.bidstream.mutation.v1.RTBRequest.Ext + 8, // 6: com.iabtechlab.bidstream.mutation.v1.RTBResponse.mutations:type_name -> com.iabtechlab.bidstream.mutation.v1.Mutation + 9, // 7: com.iabtechlab.bidstream.mutation.v1.RTBResponse.metadata:type_name -> com.iabtechlab.bidstream.mutation.v1.Metadata + 3, // 8: com.iabtechlab.bidstream.mutation.v1.Originator.type:type_name -> com.iabtechlab.bidstream.mutation.v1.Originator.Type + 2, // 9: com.iabtechlab.bidstream.mutation.v1.Mutation.intent:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent + 1, // 10: com.iabtechlab.bidstream.mutation.v1.Mutation.op:type_name -> com.iabtechlab.bidstream.mutation.v1.Operation + 10, // 11: com.iabtechlab.bidstream.mutation.v1.Mutation.ids:type_name -> com.iabtechlab.bidstream.mutation.v1.IDsPayload + 11, // 12: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_deal:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload + 13, // 13: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_bid:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload + 14, // 14: com.iabtechlab.bidstream.mutation.v1.Mutation.metrics:type_name -> com.iabtechlab.bidstream.mutation.v1.MetricsPayload + 15, // 15: com.iabtechlab.bidstream.mutation.v1.Mutation.content_data:type_name -> com.iabtechlab.bidstream.mutation.v1.DataPayload + 12, // 16: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload.margin:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin + 4, // 17: com.iabtechlab.bidstream.mutation.v1.Margin.calculation_type:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType + 19, // 18: com.iabtechlab.bidstream.mutation.v1.MetricsPayload.metric:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + 20, // 19: com.iabtechlab.bidstream.mutation.v1.DataPayload.data:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Data + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_agenticrtbframework_proto_init() } @@ -1132,17 +1232,18 @@ func file_agenticrtbframework_proto_init() { (*Mutation_Ids)(nil), (*Mutation_AdjustDeal)(nil), (*Mutation_AdjustBid)(nil), - (*Mutation_AddMetrics)(nil), + (*Mutation_Metrics)(nil), + (*Mutation_ContentData)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_agenticrtbframework_proto_rawDesc), len(file_agenticrtbframework_proto_rawDesc)), - NumEnums: 4, - NumMessages: 10, + NumEnums: 5, + NumMessages: 12, NumExtensions: 0, - NumServices: 1, + NumServices: 0, }, GoTypes: file_agenticrtbframework_proto_goTypes, DependencyIndexes: file_agenticrtbframework_proto_depIdxs, diff --git a/pkg/pb/artf/agenticrtbframeworkservices.pb.go b/pkg/pb/artf/agenticrtbframeworkservices.pb.go new file mode 100644 index 0000000..e2a8bc4 --- /dev/null +++ b/pkg/pb/artf/agenticrtbframeworkservices.pb.go @@ -0,0 +1,67 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.12 +// protoc v5.29.3 +// source: agenticrtbframeworkservices.proto + +package artf + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var File_agenticrtbframeworkservices_proto protoreflect.FileDescriptor + +const file_agenticrtbframeworkservices_proto_rawDesc = "" + + "\n" + + "!agenticrtbframeworkservices.proto\x12-com.iabtechlab.bidstream.mutation.services.v1\x1a\x19agenticrtbframework.proto2\x88\x01\n" + + "\x11RTBExtensionPoint\x12s\n" + + "\fGetMutations\x120.com.iabtechlab.bidstream.mutation.v1.RTBRequest\x1a1.com.iabtechlab.bidstream.mutation.v1.RTBResponseB9Z7github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artfb\x06proto3" + +var file_agenticrtbframeworkservices_proto_goTypes = []any{ + (*RTBRequest)(nil), // 0: com.iabtechlab.bidstream.mutation.v1.RTBRequest + (*RTBResponse)(nil), // 1: com.iabtechlab.bidstream.mutation.v1.RTBResponse +} +var file_agenticrtbframeworkservices_proto_depIdxs = []int32{ + 0, // 0: com.iabtechlab.bidstream.mutation.services.v1.RTBExtensionPoint.GetMutations:input_type -> com.iabtechlab.bidstream.mutation.v1.RTBRequest + 1, // 1: com.iabtechlab.bidstream.mutation.services.v1.RTBExtensionPoint.GetMutations:output_type -> com.iabtechlab.bidstream.mutation.v1.RTBResponse + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] 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 +} + +func init() { file_agenticrtbframeworkservices_proto_init() } +func file_agenticrtbframeworkservices_proto_init() { + if File_agenticrtbframeworkservices_proto != nil { + return + } + file_agenticrtbframework_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agenticrtbframeworkservices_proto_rawDesc), len(file_agenticrtbframeworkservices_proto_rawDesc)), + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_agenticrtbframeworkservices_proto_goTypes, + DependencyIndexes: file_agenticrtbframeworkservices_proto_depIdxs, + }.Build() + File_agenticrtbframeworkservices_proto = out.File + file_agenticrtbframeworkservices_proto_goTypes = nil + file_agenticrtbframeworkservices_proto_depIdxs = nil +} diff --git a/pkg/pb/artf/agenticrtbframework_grpc.pb.go b/pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go similarity index 96% rename from pkg/pb/artf/agenticrtbframework_grpc.pb.go rename to pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go index d5bd6d5..d03bec9 100644 --- a/pkg/pb/artf/agenticrtbframework_grpc.pb.go +++ b/pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.6.0 -// - protoc v3.21.12 -// source: agenticrtbframework.proto +// - protoc-gen-go-grpc v1.6.2 +// - protoc v5.29.3 +// source: agenticrtbframeworkservices.proto package artf @@ -119,5 +119,5 @@ var RTBExtensionPoint_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "agenticrtbframework.proto", + Metadata: "agenticrtbframeworkservices.proto", } diff --git a/proto/agenticrtbframework.proto b/proto/agenticrtbframework.proto index d5782de..89fb61c 100644 --- a/proto/agenticrtbframework.proto +++ b/proto/agenticrtbframework.proto @@ -2,8 +2,10 @@ edition = "2023"; package com.iabtechlab.bidstream.mutation.v1; +option go_package = "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artf"; + // Import OpenRTB definitions for BidRequest and BidResponse -import "com/iabtechlab/openrtb/v2.6/openrtb.proto"; +import "com/iabtechlab/openrtb/v2/openrtb.proto"; // ------------------- Messages ------------------- @@ -195,7 +197,7 @@ message AdjustBidPayload { message MetricsPayload { // List of metrics to add - repeated com.iabtechlab.openrtb.v2.BidRequest.Metric metric = 1; + repeated com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric metric = 1; } message DataPayload { diff --git a/proto/agenticrtbframeworkservices.proto b/proto/agenticrtbframeworkservices.proto new file mode 100644 index 0000000..58d467d --- /dev/null +++ b/proto/agenticrtbframeworkservices.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package com.iabtechlab.bidstream.mutation.services.v1; + +option go_package = "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artf"; + +import "agenticrtbframework.proto"; + +service RTBExtensionPoint { + // GetMutations returns RTBResponse containing mutations to be applied at the predetermined auction lifecycle event + rpc GetMutations (com.iabtechlab.bidstream.mutation.v1.RTBRequest) returns (com.iabtechlab.bidstream.mutation.v1.RTBResponse); +} diff --git a/samples/multi-impression.json b/samples/multi-impression.json index e6681a0..e9157b5 100644 --- a/samples/multi-impression.json +++ b/samples/multi-impression.json @@ -111,7 +111,7 @@ "devicetype": 2, "ip": "203.0.113.50", "language": "en", - "js": 1, + "js": true, "geo": { "country": "USA", "region": "TX", @@ -119,12 +119,12 @@ } }, "regs": { - "coppa": 0, - "gdpr": 0, + "coppa": false, + "gdpr": false, "us_privacy": "1YNN" }, "source": { - "fd": 1, + "fd": true, "tid": "transaction-abc-123" }, "at": 1, diff --git a/samples/native-ad.json b/samples/native-ad.json index f06420d..9fa4040 100644 --- a/samples/native-ad.json +++ b/samples/native-ad.json @@ -60,7 +60,7 @@ "w": 390, "h": 844, "pxratio": 3.0, - "js": 1, + "js": true, "language": "en", "connectiontype": 6, "ifa": "8A2E0A2B-3C4D-5E6F-7A8B-9C0D1E2F3A4B", @@ -75,7 +75,7 @@ } }, "regs": { - "coppa": 0 + "coppa": false } } } diff --git a/scripts/generate.sh b/scripts/generate.sh index 2570cbf..5211a06 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -36,14 +36,22 @@ protoc \ --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ "$OPENRTB_PROTO" -# Generate ARTF service and types -echo " - ARTF service and types..." +# Generate ARTF types +echo " - ARTF types..." +protoc \ + --proto_path="$PROTO_DIR" \ + --go_out="$PROJECT_ROOT" \ + --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ + "$PROTO_DIR/agenticrtbframework.proto" + +# Generate ARTF service (RTBExtensionPoint) +echo " - ARTF service..." protoc \ --proto_path="$PROTO_DIR" \ --go_out="$PROJECT_ROOT" \ --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ --go-grpc_out="$PROJECT_ROOT" \ --go-grpc_opt=module=github.com/iabtechlab/agentic-rtb-framework \ - "$PROTO_DIR/agenticrtbframework.proto" + "$PROTO_DIR/agenticrtbframeworkservices.proto" echo "Done! Generated files in $OUT_DIR"