Files
seaweedFS/weed/pb/mq_agent_pb/mq_agent.pb.go
Chris Lu 6bf088cec9 IAM Policy Management via gRPC (#8109)
* Add IAM gRPC service definition

- Add GetConfiguration/PutConfiguration for config management
- Add CreateUser/GetUser/UpdateUser/DeleteUser/ListUsers for user management
- Add CreateAccessKey/DeleteAccessKey/GetUserByAccessKey for access key management
- Methods mirror existing IAM HTTP API functionality

* Add IAM gRPC handlers on filer server

- Implement IamGrpcServer with CredentialManager integration
- Handle configuration get/put operations
- Handle user CRUD operations
- Handle access key create/delete operations
- All methods delegate to CredentialManager for actual storage

* Wire IAM gRPC service to filer server

- Add CredentialManager field to FilerOption and FilerServer
- Import credential store implementations in filer command
- Initialize CredentialManager from credential.toml if available
- Register IAM gRPC service on filer gRPC server
- Enable credential management via gRPC alongside existing filer services

* Regenerate IAM protobuf with gRPC service methods

* iam_pb: add Policy Management to protobuf definitions

* credential: implement PolicyManager in credential stores

* filer: implement IAM Policy Management RPCs

* shell: add s3.policy command

* test: add integration test for s3.policy

* test: fix compilation errors in policy_test

* pb

* fmt

* test

* weed shell: add -policies flag to s3.configure

This allows linking/unlinking IAM policies to/from identities
directly from the s3.configure command.

* test: verify s3.configure policy linking and fix port allocation

- Added test case for linking policies to users via s3.configure
- Implemented findAvailablePortPair to ensure HTTP and gRPC ports
  are both available, avoiding conflicts with randomized port assignments.
- Updated assertion to match jsonpb output (policyNames)

* credential: add StoreTypeGrpc constant

* credential: add IAM gRPC store boilerplate

* credential: implement identity methods in gRPC store

* credential: implement policy methods in gRPC store

* admin: use gRPC credential store for AdminServer

This ensures that all IAM and policy changes made through the Admin UI
are persisted via the Filer's IAM gRPC service instead of direct file manipulation.

* shell: s3.configure use granular IAM gRPC APIs instead of full config patching

* shell: s3.configure use granular IAM gRPC APIs

* shell: replace deprecated ioutil with os in s3.policy

* filer: use gRPC FailedPrecondition for unconfigured credential manager

* test: improve s3.policy integration tests and fix error checks

* ci: add s3 policy shell integration tests to github workflow

* filer: fix LoadCredentialConfiguration error handling

* credential/grpc: propagate unmarshal errors in GetPolicies

* filer/grpc: improve error handling and validation

* shell: use gRPC status codes in s3.configure

* credential: document PutPolicy as create-or-replace

* credential/postgres: reuse CreatePolicy in PutPolicy to deduplicate logic

* shell: add timeout context and strictly enforce flags in s3.policy

* iam: standardize policy content field naming in gRPC and proto

* shell: extract slice helper functions in s3.configure

* filer: map credential store errors to gRPC status codes

* filer: add input validation for UpdateUser and CreateAccessKey

* iam: improve validation in policy and config handlers

* filer: ensure IAM service registration by defaulting credential manager

* credential: add GetStoreName method to manager

* test: verify policy deletion in integration test
2026-01-25 13:39:30 -08:00

764 lines
27 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.6
// protoc v6.33.4
// source: mq_agent.proto
package mq_agent_pb
import (
schema_pb "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
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)
)
// ////////////////////////////////////////////////
type StartPublishSessionRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Topic *schema_pb.Topic `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
PartitionCount int32 `protobuf:"varint,2,opt,name=partition_count,json=partitionCount,proto3" json:"partition_count,omitempty"`
RecordType *schema_pb.RecordType `protobuf:"bytes,3,opt,name=record_type,json=recordType,proto3" json:"record_type,omitempty"`
PublisherName string `protobuf:"bytes,4,opt,name=publisher_name,json=publisherName,proto3" json:"publisher_name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StartPublishSessionRequest) Reset() {
*x = StartPublishSessionRequest{}
mi := &file_mq_agent_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StartPublishSessionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StartPublishSessionRequest) ProtoMessage() {}
func (x *StartPublishSessionRequest) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[0]
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 StartPublishSessionRequest.ProtoReflect.Descriptor instead.
func (*StartPublishSessionRequest) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{0}
}
func (x *StartPublishSessionRequest) GetTopic() *schema_pb.Topic {
if x != nil {
return x.Topic
}
return nil
}
func (x *StartPublishSessionRequest) GetPartitionCount() int32 {
if x != nil {
return x.PartitionCount
}
return 0
}
func (x *StartPublishSessionRequest) GetRecordType() *schema_pb.RecordType {
if x != nil {
return x.RecordType
}
return nil
}
func (x *StartPublishSessionRequest) GetPublisherName() string {
if x != nil {
return x.PublisherName
}
return ""
}
type StartPublishSessionResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
SessionId int64 `protobuf:"varint,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StartPublishSessionResponse) Reset() {
*x = StartPublishSessionResponse{}
mi := &file_mq_agent_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StartPublishSessionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StartPublishSessionResponse) ProtoMessage() {}
func (x *StartPublishSessionResponse) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[1]
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 StartPublishSessionResponse.ProtoReflect.Descriptor instead.
func (*StartPublishSessionResponse) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{1}
}
func (x *StartPublishSessionResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *StartPublishSessionResponse) GetSessionId() int64 {
if x != nil {
return x.SessionId
}
return 0
}
type ClosePublishSessionRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
SessionId int64 `protobuf:"varint,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ClosePublishSessionRequest) Reset() {
*x = ClosePublishSessionRequest{}
mi := &file_mq_agent_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ClosePublishSessionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClosePublishSessionRequest) ProtoMessage() {}
func (x *ClosePublishSessionRequest) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_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 ClosePublishSessionRequest.ProtoReflect.Descriptor instead.
func (*ClosePublishSessionRequest) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{2}
}
func (x *ClosePublishSessionRequest) GetSessionId() int64 {
if x != nil {
return x.SessionId
}
return 0
}
type ClosePublishSessionResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ClosePublishSessionResponse) Reset() {
*x = ClosePublishSessionResponse{}
mi := &file_mq_agent_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ClosePublishSessionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClosePublishSessionResponse) ProtoMessage() {}
func (x *ClosePublishSessionResponse) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[3]
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 ClosePublishSessionResponse.ProtoReflect.Descriptor instead.
func (*ClosePublishSessionResponse) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{3}
}
func (x *ClosePublishSessionResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
// ////////////////////////////////////////////////
type PublishRecordRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
SessionId int64 `protobuf:"varint,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` // session_id is required for the first record
Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
Value *schema_pb.RecordValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PublishRecordRequest) Reset() {
*x = PublishRecordRequest{}
mi := &file_mq_agent_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PublishRecordRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PublishRecordRequest) ProtoMessage() {}
func (x *PublishRecordRequest) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[4]
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 PublishRecordRequest.ProtoReflect.Descriptor instead.
func (*PublishRecordRequest) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{4}
}
func (x *PublishRecordRequest) GetSessionId() int64 {
if x != nil {
return x.SessionId
}
return 0
}
func (x *PublishRecordRequest) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *PublishRecordRequest) GetValue() *schema_pb.RecordValue {
if x != nil {
return x.Value
}
return nil
}
type PublishRecordResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
AckSequence int64 `protobuf:"varint,1,opt,name=ack_sequence,json=ackSequence,proto3" json:"ack_sequence,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
BaseOffset int64 `protobuf:"varint,3,opt,name=base_offset,json=baseOffset,proto3" json:"base_offset,omitempty"` // First offset assigned to this batch
LastOffset int64 `protobuf:"varint,4,opt,name=last_offset,json=lastOffset,proto3" json:"last_offset,omitempty"` // Last offset assigned to this batch
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PublishRecordResponse) Reset() {
*x = PublishRecordResponse{}
mi := &file_mq_agent_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PublishRecordResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PublishRecordResponse) ProtoMessage() {}
func (x *PublishRecordResponse) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[5]
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 PublishRecordResponse.ProtoReflect.Descriptor instead.
func (*PublishRecordResponse) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{5}
}
func (x *PublishRecordResponse) GetAckSequence() int64 {
if x != nil {
return x.AckSequence
}
return 0
}
func (x *PublishRecordResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *PublishRecordResponse) GetBaseOffset() int64 {
if x != nil {
return x.BaseOffset
}
return 0
}
func (x *PublishRecordResponse) GetLastOffset() int64 {
if x != nil {
return x.LastOffset
}
return 0
}
// ////////////////////////////////////////////////
type SubscribeRecordRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Init *SubscribeRecordRequest_InitSubscribeRecordRequest `protobuf:"bytes,1,opt,name=init,proto3" json:"init,omitempty"`
AckSequence int64 `protobuf:"varint,2,opt,name=ack_sequence,json=ackSequence,proto3" json:"ack_sequence,omitempty"`
AckKey []byte `protobuf:"bytes,3,opt,name=ack_key,json=ackKey,proto3" json:"ack_key,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SubscribeRecordRequest) Reset() {
*x = SubscribeRecordRequest{}
mi := &file_mq_agent_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SubscribeRecordRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeRecordRequest) ProtoMessage() {}
func (x *SubscribeRecordRequest) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[6]
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 SubscribeRecordRequest.ProtoReflect.Descriptor instead.
func (*SubscribeRecordRequest) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{6}
}
func (x *SubscribeRecordRequest) GetInit() *SubscribeRecordRequest_InitSubscribeRecordRequest {
if x != nil {
return x.Init
}
return nil
}
func (x *SubscribeRecordRequest) GetAckSequence() int64 {
if x != nil {
return x.AckSequence
}
return 0
}
func (x *SubscribeRecordRequest) GetAckKey() []byte {
if x != nil {
return x.AckKey
}
return nil
}
type SubscribeRecordResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
Value *schema_pb.RecordValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
TsNs int64 `protobuf:"varint,4,opt,name=ts_ns,json=tsNs,proto3" json:"ts_ns,omitempty"`
Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
IsEndOfStream bool `protobuf:"varint,6,opt,name=is_end_of_stream,json=isEndOfStream,proto3" json:"is_end_of_stream,omitempty"`
IsEndOfTopic bool `protobuf:"varint,7,opt,name=is_end_of_topic,json=isEndOfTopic,proto3" json:"is_end_of_topic,omitempty"`
Offset int64 `protobuf:"varint,8,opt,name=offset,proto3" json:"offset,omitempty"` // Sequential offset within partition
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SubscribeRecordResponse) Reset() {
*x = SubscribeRecordResponse{}
mi := &file_mq_agent_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SubscribeRecordResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeRecordResponse) ProtoMessage() {}
func (x *SubscribeRecordResponse) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[7]
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 SubscribeRecordResponse.ProtoReflect.Descriptor instead.
func (*SubscribeRecordResponse) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{7}
}
func (x *SubscribeRecordResponse) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *SubscribeRecordResponse) GetValue() *schema_pb.RecordValue {
if x != nil {
return x.Value
}
return nil
}
func (x *SubscribeRecordResponse) GetTsNs() int64 {
if x != nil {
return x.TsNs
}
return 0
}
func (x *SubscribeRecordResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *SubscribeRecordResponse) GetIsEndOfStream() bool {
if x != nil {
return x.IsEndOfStream
}
return false
}
func (x *SubscribeRecordResponse) GetIsEndOfTopic() bool {
if x != nil {
return x.IsEndOfTopic
}
return false
}
func (x *SubscribeRecordResponse) GetOffset() int64 {
if x != nil {
return x.Offset
}
return 0
}
type SubscribeRecordRequest_InitSubscribeRecordRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ConsumerGroup string `protobuf:"bytes,1,opt,name=consumer_group,json=consumerGroup,proto3" json:"consumer_group,omitempty"`
ConsumerGroupInstanceId string `protobuf:"bytes,2,opt,name=consumer_group_instance_id,json=consumerGroupInstanceId,proto3" json:"consumer_group_instance_id,omitempty"`
Topic *schema_pb.Topic `protobuf:"bytes,4,opt,name=topic,proto3" json:"topic,omitempty"`
PartitionOffsets []*schema_pb.PartitionOffset `protobuf:"bytes,5,rep,name=partition_offsets,json=partitionOffsets,proto3" json:"partition_offsets,omitempty"`
OffsetType schema_pb.OffsetType `protobuf:"varint,6,opt,name=offset_type,json=offsetType,proto3,enum=schema_pb.OffsetType" json:"offset_type,omitempty"`
OffsetTsNs int64 `protobuf:"varint,7,opt,name=offset_ts_ns,json=offsetTsNs,proto3" json:"offset_ts_ns,omitempty"`
Filter string `protobuf:"bytes,10,opt,name=filter,proto3" json:"filter,omitempty"`
MaxSubscribedPartitions int32 `protobuf:"varint,11,opt,name=max_subscribed_partitions,json=maxSubscribedPartitions,proto3" json:"max_subscribed_partitions,omitempty"`
SlidingWindowSize int32 `protobuf:"varint,12,opt,name=sliding_window_size,json=slidingWindowSize,proto3" json:"sliding_window_size,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) Reset() {
*x = SubscribeRecordRequest_InitSubscribeRecordRequest{}
mi := &file_mq_agent_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeRecordRequest_InitSubscribeRecordRequest) ProtoMessage() {}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) ProtoReflect() protoreflect.Message {
mi := &file_mq_agent_proto_msgTypes[8]
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 SubscribeRecordRequest_InitSubscribeRecordRequest.ProtoReflect.Descriptor instead.
func (*SubscribeRecordRequest_InitSubscribeRecordRequest) Descriptor() ([]byte, []int) {
return file_mq_agent_proto_rawDescGZIP(), []int{6, 0}
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetConsumerGroup() string {
if x != nil {
return x.ConsumerGroup
}
return ""
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetConsumerGroupInstanceId() string {
if x != nil {
return x.ConsumerGroupInstanceId
}
return ""
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetTopic() *schema_pb.Topic {
if x != nil {
return x.Topic
}
return nil
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetPartitionOffsets() []*schema_pb.PartitionOffset {
if x != nil {
return x.PartitionOffsets
}
return nil
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetOffsetType() schema_pb.OffsetType {
if x != nil {
return x.OffsetType
}
return schema_pb.OffsetType(0)
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetOffsetTsNs() int64 {
if x != nil {
return x.OffsetTsNs
}
return 0
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetFilter() string {
if x != nil {
return x.Filter
}
return ""
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetMaxSubscribedPartitions() int32 {
if x != nil {
return x.MaxSubscribedPartitions
}
return 0
}
func (x *SubscribeRecordRequest_InitSubscribeRecordRequest) GetSlidingWindowSize() int32 {
if x != nil {
return x.SlidingWindowSize
}
return 0
}
var File_mq_agent_proto protoreflect.FileDescriptor
const file_mq_agent_proto_rawDesc = "" +
"\n" +
"\x0emq_agent.proto\x12\fmessaging_pb\x1a\x0fmq_schema.proto\"\xcc\x01\n" +
"\x1aStartPublishSessionRequest\x12&\n" +
"\x05topic\x18\x01 \x01(\v2\x10.schema_pb.TopicR\x05topic\x12'\n" +
"\x0fpartition_count\x18\x02 \x01(\x05R\x0epartitionCount\x126\n" +
"\vrecord_type\x18\x03 \x01(\v2\x15.schema_pb.RecordTypeR\n" +
"recordType\x12%\n" +
"\x0epublisher_name\x18\x04 \x01(\tR\rpublisherName\"R\n" +
"\x1bStartPublishSessionResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12\x1d\n" +
"\n" +
"session_id\x18\x02 \x01(\x03R\tsessionId\";\n" +
"\x1aClosePublishSessionRequest\x12\x1d\n" +
"\n" +
"session_id\x18\x01 \x01(\x03R\tsessionId\"3\n" +
"\x1bClosePublishSessionResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\"u\n" +
"\x14PublishRecordRequest\x12\x1d\n" +
"\n" +
"session_id\x18\x01 \x01(\x03R\tsessionId\x12\x10\n" +
"\x03key\x18\x02 \x01(\fR\x03key\x12,\n" +
"\x05value\x18\x03 \x01(\v2\x16.schema_pb.RecordValueR\x05value\"\x92\x01\n" +
"\x15PublishRecordResponse\x12!\n" +
"\fack_sequence\x18\x01 \x01(\x03R\vackSequence\x12\x14\n" +
"\x05error\x18\x02 \x01(\tR\x05error\x12\x1f\n" +
"\vbase_offset\x18\x03 \x01(\x03R\n" +
"baseOffset\x12\x1f\n" +
"\vlast_offset\x18\x04 \x01(\x03R\n" +
"lastOffset\"\xfb\x04\n" +
"\x16SubscribeRecordRequest\x12S\n" +
"\x04init\x18\x01 \x01(\v2?.messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequestR\x04init\x12!\n" +
"\fack_sequence\x18\x02 \x01(\x03R\vackSequence\x12\x17\n" +
"\aack_key\x18\x03 \x01(\fR\x06ackKey\x1a\xcf\x03\n" +
"\x1aInitSubscribeRecordRequest\x12%\n" +
"\x0econsumer_group\x18\x01 \x01(\tR\rconsumerGroup\x12;\n" +
"\x1aconsumer_group_instance_id\x18\x02 \x01(\tR\x17consumerGroupInstanceId\x12&\n" +
"\x05topic\x18\x04 \x01(\v2\x10.schema_pb.TopicR\x05topic\x12G\n" +
"\x11partition_offsets\x18\x05 \x03(\v2\x1a.schema_pb.PartitionOffsetR\x10partitionOffsets\x126\n" +
"\voffset_type\x18\x06 \x01(\x0e2\x15.schema_pb.OffsetTypeR\n" +
"offsetType\x12 \n" +
"\foffset_ts_ns\x18\a \x01(\x03R\n" +
"offsetTsNs\x12\x16\n" +
"\x06filter\x18\n" +
" \x01(\tR\x06filter\x12:\n" +
"\x19max_subscribed_partitions\x18\v \x01(\x05R\x17maxSubscribedPartitions\x12.\n" +
"\x13sliding_window_size\x18\f \x01(\x05R\x11slidingWindowSize\"\xec\x01\n" +
"\x17SubscribeRecordResponse\x12\x10\n" +
"\x03key\x18\x02 \x01(\fR\x03key\x12,\n" +
"\x05value\x18\x03 \x01(\v2\x16.schema_pb.RecordValueR\x05value\x12\x13\n" +
"\x05ts_ns\x18\x04 \x01(\x03R\x04tsNs\x12\x14\n" +
"\x05error\x18\x05 \x01(\tR\x05error\x12'\n" +
"\x10is_end_of_stream\x18\x06 \x01(\bR\risEndOfStream\x12%\n" +
"\x0fis_end_of_topic\x18\a \x01(\bR\fisEndOfTopic\x12\x16\n" +
"\x06offset\x18\b \x01(\x03R\x06offset2\xb9\x03\n" +
"\x15SeaweedMessagingAgent\x12l\n" +
"\x13StartPublishSession\x12(.messaging_pb.StartPublishSessionRequest\x1a).messaging_pb.StartPublishSessionResponse\"\x00\x12l\n" +
"\x13ClosePublishSession\x12(.messaging_pb.ClosePublishSessionRequest\x1a).messaging_pb.ClosePublishSessionResponse\"\x00\x12^\n" +
"\rPublishRecord\x12\".messaging_pb.PublishRecordRequest\x1a#.messaging_pb.PublishRecordResponse\"\x00(\x010\x01\x12d\n" +
"\x0fSubscribeRecord\x12$.messaging_pb.SubscribeRecordRequest\x1a%.messaging_pb.SubscribeRecordResponse\"\x00(\x010\x01B`\n" +
"\x12seaweedfs.mq_agentB\x16MessageQueueAgentProtoZ2github.com/seaweedfs/seaweedfs/weed/pb/mq_agent_pbb\x06proto3"
var (
file_mq_agent_proto_rawDescOnce sync.Once
file_mq_agent_proto_rawDescData []byte
)
func file_mq_agent_proto_rawDescGZIP() []byte {
file_mq_agent_proto_rawDescOnce.Do(func() {
file_mq_agent_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_mq_agent_proto_rawDesc), len(file_mq_agent_proto_rawDesc)))
})
return file_mq_agent_proto_rawDescData
}
var file_mq_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_mq_agent_proto_goTypes = []any{
(*StartPublishSessionRequest)(nil), // 0: messaging_pb.StartPublishSessionRequest
(*StartPublishSessionResponse)(nil), // 1: messaging_pb.StartPublishSessionResponse
(*ClosePublishSessionRequest)(nil), // 2: messaging_pb.ClosePublishSessionRequest
(*ClosePublishSessionResponse)(nil), // 3: messaging_pb.ClosePublishSessionResponse
(*PublishRecordRequest)(nil), // 4: messaging_pb.PublishRecordRequest
(*PublishRecordResponse)(nil), // 5: messaging_pb.PublishRecordResponse
(*SubscribeRecordRequest)(nil), // 6: messaging_pb.SubscribeRecordRequest
(*SubscribeRecordResponse)(nil), // 7: messaging_pb.SubscribeRecordResponse
(*SubscribeRecordRequest_InitSubscribeRecordRequest)(nil), // 8: messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequest
(*schema_pb.Topic)(nil), // 9: schema_pb.Topic
(*schema_pb.RecordType)(nil), // 10: schema_pb.RecordType
(*schema_pb.RecordValue)(nil), // 11: schema_pb.RecordValue
(*schema_pb.PartitionOffset)(nil), // 12: schema_pb.PartitionOffset
(schema_pb.OffsetType)(0), // 13: schema_pb.OffsetType
}
var file_mq_agent_proto_depIdxs = []int32{
9, // 0: messaging_pb.StartPublishSessionRequest.topic:type_name -> schema_pb.Topic
10, // 1: messaging_pb.StartPublishSessionRequest.record_type:type_name -> schema_pb.RecordType
11, // 2: messaging_pb.PublishRecordRequest.value:type_name -> schema_pb.RecordValue
8, // 3: messaging_pb.SubscribeRecordRequest.init:type_name -> messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequest
11, // 4: messaging_pb.SubscribeRecordResponse.value:type_name -> schema_pb.RecordValue
9, // 5: messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequest.topic:type_name -> schema_pb.Topic
12, // 6: messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequest.partition_offsets:type_name -> schema_pb.PartitionOffset
13, // 7: messaging_pb.SubscribeRecordRequest.InitSubscribeRecordRequest.offset_type:type_name -> schema_pb.OffsetType
0, // 8: messaging_pb.SeaweedMessagingAgent.StartPublishSession:input_type -> messaging_pb.StartPublishSessionRequest
2, // 9: messaging_pb.SeaweedMessagingAgent.ClosePublishSession:input_type -> messaging_pb.ClosePublishSessionRequest
4, // 10: messaging_pb.SeaweedMessagingAgent.PublishRecord:input_type -> messaging_pb.PublishRecordRequest
6, // 11: messaging_pb.SeaweedMessagingAgent.SubscribeRecord:input_type -> messaging_pb.SubscribeRecordRequest
1, // 12: messaging_pb.SeaweedMessagingAgent.StartPublishSession:output_type -> messaging_pb.StartPublishSessionResponse
3, // 13: messaging_pb.SeaweedMessagingAgent.ClosePublishSession:output_type -> messaging_pb.ClosePublishSessionResponse
5, // 14: messaging_pb.SeaweedMessagingAgent.PublishRecord:output_type -> messaging_pb.PublishRecordResponse
7, // 15: messaging_pb.SeaweedMessagingAgent.SubscribeRecord:output_type -> messaging_pb.SubscribeRecordResponse
12, // [12:16] is the sub-list for method output_type
8, // [8:12] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_mq_agent_proto_init() }
func file_mq_agent_proto_init() {
if File_mq_agent_proto != nil {
return
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_mq_agent_proto_rawDesc), len(file_mq_agent_proto_rawDesc)),
NumEnums: 0,
NumMessages: 9,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_mq_agent_proto_goTypes,
DependencyIndexes: file_mq_agent_proto_depIdxs,
MessageInfos: file_mq_agent_proto_msgTypes,
}.Build()
File_mq_agent_proto = out.File
file_mq_agent_proto_goTypes = nil
file_mq_agent_proto_depIdxs = nil
}