Documentation ¶
Overview ¶
Package auditv1 sends events to the Audit API.
Index ¶
- Variables
- func Init(dsn string)
- func RegisterAuditAPIServer(s *grpc.Server, srv AuditAPIServer)
- func SetupClient(l *zap.Logger, t *Target) (err error)
- func Write(event *Event)
- func WriteEvents(ctx context.Context, events []*Event) (err error)
- type AuditAPIClient
- type AuditAPIServer
- type Client
- type Error
- type Event
- func (*Event) Descriptor() ([]byte, []int)
- func (m *Event) GetActor() *Resource
- func (m *Event) GetEvent() string
- func (m *Event) GetExternalId() string
- func (m *Event) GetId() string
- func (m *Event) GetMeta() *Meta
- func (m *Event) GetReason() string
- func (m *Event) GetResources() []*Resource
- func (m *Event) GetSessionId() string
- func (m *Event) GetTimestamp() *timestamppb.Timestamp
- func (m *Event) GetXOriginal() []byte
- func (m *Event) MarshalLogObject(oe zapcore.ObjectEncoder) error
- func (*Event) ProtoMessage()
- func (m *Event) Reset()
- func (m *Event) String() string
- func (m *Event) XXX_DiscardUnknown()
- func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Event) XXX_Merge(src proto.Message)
- func (m *Event) XXX_Size() int
- func (m *Event) XXX_Unmarshal(b []byte) error
- type Meta
- func (*Meta) Descriptor() ([]byte, []int)
- func (m *Meta) GetCreateTime() *timestamppb.Timestamp
- func (m *Meta) GetDeleteTime() *timestamppb.Timestamp
- func (m *Meta) GetDisplayName() string
- func (m *Meta) GetEndTime() *timestamppb.Timestamp
- func (m *Meta) GetExpireTime() *timestamppb.Timestamp
- func (m *Meta) GetLabels() map[string]string
- func (m *Meta) GetName() string
- func (m *Meta) GetStartTime() *timestamppb.Timestamp
- func (m *Meta) GetUpdateTime() *timestamppb.Timestamp
- func (*Meta) ProtoMessage()
- func (m *Meta) Reset()
- func (m *Meta) String() string
- func (m *Meta) XXX_DiscardUnknown()
- func (m *Meta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Meta) XXX_Merge(src proto.Message)
- func (m *Meta) XXX_Size() int
- func (m *Meta) XXX_Unmarshal(b []byte) error
- type Resource
- func (*Resource) Descriptor() ([]byte, []int)
- func (m *Resource) GetAltIds() []string
- func (m *Resource) GetDisplayName() string
- func (m *Resource) GetEmail() string
- func (m *Resource) GetId() string
- func (m *Resource) GetKind() string
- func (m *Resource) GetLabels() map[string]string
- func (m *Resource) MarshalLogObject(oe zapcore.ObjectEncoder) error
- func (*Resource) ProtoMessage()
- func (m *Resource) Reset()
- func (m *Resource) String() string
- func (m *Resource) XXX_DiscardUnknown()
- func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Resource) XXX_Merge(src proto.Message)
- func (m *Resource) XXX_Size() int
- func (m *Resource) XXX_Unmarshal(b []byte) error
- type Target
- func (*Target) Descriptor() ([]byte, []int)
- func (m *Target) GetKind() Target_Kind
- func (m *Target) GetName() string
- func (*Target) ProtoMessage()
- func (m *Target) Reset()
- func (m *Target) String() string
- func (m *Target) XXX_DiscardUnknown()
- func (m *Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Target) XXX_Merge(src proto.Message)
- func (m *Target) XXX_Size() int
- func (m *Target) XXX_Unmarshal(b []byte) error
- type Target_Kind
- type UnimplementedAuditAPIServer
- func (*UnimplementedAuditAPIServer) Write(ctx context.Context, req *WriteRequest) (*emptypb.Empty, error)
- func (*UnimplementedAuditAPIServer) WriteBatch(ctx context.Context, req *WriteBatchRequest) (*emptypb.Empty, error)
- func (*UnimplementedAuditAPIServer) WriteEvent(ctx context.Context, req *WriteEventRequest) (*emptypb.Empty, error)
- type WriteBatchRequest
- func (*WriteBatchRequest) Descriptor() ([]byte, []int)
- func (m *WriteBatchRequest) GetAsync() bool
- func (m *WriteBatchRequest) GetEvents() []*Event
- func (m *WriteBatchRequest) GetInputName() string
- func (m *WriteBatchRequest) GetProviderName() string
- func (m *WriteBatchRequest) GetSpaceName() string
- func (*WriteBatchRequest) ProtoMessage()
- func (m *WriteBatchRequest) Reset()
- func (m *WriteBatchRequest) String() string
- func (m *WriteBatchRequest) XXX_DiscardUnknown()
- func (m *WriteBatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WriteBatchRequest) XXX_Merge(src proto.Message)
- func (m *WriteBatchRequest) XXX_Size() int
- func (m *WriteBatchRequest) XXX_Unmarshal(b []byte) error
- type WriteEventRequest
- func (*WriteEventRequest) Descriptor() ([]byte, []int)
- func (m *WriteEventRequest) GetEvent() *Event
- func (m *WriteEventRequest) GetInputName() string
- func (m *WriteEventRequest) GetProviderName() string
- func (m *WriteEventRequest) GetSpaceName() string
- func (*WriteEventRequest) ProtoMessage()
- func (m *WriteEventRequest) Reset()
- func (m *WriteEventRequest) String() string
- func (m *WriteEventRequest) XXX_DiscardUnknown()
- func (m *WriteEventRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WriteEventRequest) XXX_Merge(src proto.Message)
- func (m *WriteEventRequest) XXX_Size() int
- func (m *WriteEventRequest) XXX_Unmarshal(b []byte) error
- type WriteRequest
- func (*WriteRequest) Descriptor() ([]byte, []int)
- func (m *WriteRequest) GetAsync() bool
- func (m *WriteRequest) GetEvents() []*Event
- func (m *WriteRequest) GetTarget() *Target
- func (*WriteRequest) ProtoMessage()
- func (m *WriteRequest) Reset()
- func (m *WriteRequest) String() string
- func (m *WriteRequest) XXX_DiscardUnknown()
- func (m *WriteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WriteRequest) XXX_Merge(src proto.Message)
- func (m *WriteRequest) XXX_Size() int
- func (m *WriteRequest) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
var Target_Kind_name = map[int32]string{
0: "INPUT",
1: "OUTPUT",
}
var Target_Kind_value = map[string]int32{
"INPUT": 0,
"OUTPUT": 1,
}
Functions ¶
func Init ¶ added in v0.0.9
func Init(dsn string)
Init configures the DefaultClient for the provided dsn. Errors will be logged..
func RegisterAuditAPIServer ¶
func RegisterAuditAPIServer(s *grpc.Server, srv AuditAPIServer)
func SetupClient ¶ added in v0.0.9
SetupClient configures the DefaultClient for t.
Types ¶
type AuditAPIClient ¶
type AuditAPIClient interface { // Write a new Event to a Target. Write(ctx context.Context, in *WriteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // WriteEvent a new Event into Indent. // // Deprecated: Use Write. WriteEvent(ctx context.Context, in *WriteEventRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // WriteBatch writes multiple Events into Indent. // // Deprecated: Use Write. WriteBatch(ctx context.Context, in *WriteBatchRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) }
AuditAPIClient is the client API for AuditAPI service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewAuditAPIClient ¶
func NewAuditAPIClient(cc grpc.ClientConnInterface) AuditAPIClient
type AuditAPIServer ¶
type AuditAPIServer interface { // Write a new Event to a Target. Write(context.Context, *WriteRequest) (*emptypb.Empty, error) // WriteEvent a new Event into Indent. // // Deprecated: Use Write. WriteEvent(context.Context, *WriteEventRequest) (*emptypb.Empty, error) // WriteBatch writes multiple Events into Indent. // // Deprecated: Use Write. WriteBatch(context.Context, *WriteBatchRequest) (*emptypb.Empty, error) }
AuditAPIServer is the server API for AuditAPI service.
type Client ¶ added in v0.0.9
type Client struct { // Target to send Events to. Target *Target // Audit communicates with the AuditAPI. Audit AuditAPIClient // Log prints informational messages. Log *zap.Logger // DebugEvents are events written with WriteDebug for validation in testing. DebugEvents []*Event // Debug determines if all Write method calls are marked for debugging. Disables sending to Audit API. Debug bool }
Client sends events to the Audit API.
var ( // DefaultClient for sending Events. DefaultClient *Client )
func NewClientFromDSN ¶ added in v0.0.9
NewClientFromDSN returns a client that sends to input by DSN.
type Error ¶ added in v0.0.9
type Error struct { // Message relating to failure. Message string // Events that failed to be written. Events []*Event }
Error encountered when writing an Event. Contains original Event for posterity.
type Event ¶
type Event struct { Event string `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"` Meta *Meta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"` Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` Timestamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Id string `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"` ExternalId string `protobuf:"bytes,13,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` SessionId string `protobuf:"bytes,20,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` Actor *Resource `protobuf:"bytes,27,opt,name=actor,proto3" json:"actor,omitempty"` Resources []*Resource `protobuf:"bytes,30,rep,name=resources,proto3" json:"resources,omitempty"` XOriginal []byte `protobuf:"bytes,35,opt,name=_original,json=Original,proto3" json:"_original,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Event contains information captured at a specific moment of time, typically relating to an authorization decision or instance of access.
func (*Event) Descriptor ¶
func (*Event) GetExternalId ¶
func (*Event) GetResources ¶
func (*Event) GetSessionId ¶
func (*Event) GetTimestamp ¶
func (m *Event) GetTimestamp() *timestamppb.Timestamp
func (*Event) GetXOriginal ¶
func (*Event) MarshalLogObject ¶ added in v0.0.9
func (m *Event) MarshalLogObject(oe zapcore.ObjectEncoder) error
func (*Event) ProtoMessage ¶
func (*Event) ProtoMessage()
func (*Event) XXX_DiscardUnknown ¶
func (m *Event) XXX_DiscardUnknown()
func (*Event) XXX_Marshal ¶
func (*Event) XXX_Unmarshal ¶
type Meta ¶ added in v0.0.9
type Meta struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` Labels map[string]string `` /* 154-byte string literal not displayed */ CreateTime *timestamppb.Timestamp `protobuf:"bytes,30,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` UpdateTime *timestamppb.Timestamp `protobuf:"bytes,31,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` DeleteTime *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` ExpireTime *timestamppb.Timestamp `protobuf:"bytes,35,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` StartTime *timestamppb.Timestamp `protobuf:"bytes,40,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` EndTime *timestamppb.Timestamp `protobuf:"bytes,45,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Meta contains metadata about an Event.
func (*Meta) Descriptor ¶ added in v0.0.9
func (*Meta) GetCreateTime ¶ added in v0.0.9
func (m *Meta) GetCreateTime() *timestamppb.Timestamp
func (*Meta) GetDeleteTime ¶ added in v0.0.9
func (m *Meta) GetDeleteTime() *timestamppb.Timestamp
func (*Meta) GetDisplayName ¶ added in v0.0.9
func (*Meta) GetEndTime ¶ added in v0.0.9
func (m *Meta) GetEndTime() *timestamppb.Timestamp
func (*Meta) GetExpireTime ¶ added in v0.0.9
func (m *Meta) GetExpireTime() *timestamppb.Timestamp
func (*Meta) GetStartTime ¶ added in v0.0.9
func (m *Meta) GetStartTime() *timestamppb.Timestamp
func (*Meta) GetUpdateTime ¶ added in v0.0.9
func (m *Meta) GetUpdateTime() *timestamppb.Timestamp
func (*Meta) ProtoMessage ¶ added in v0.0.9
func (*Meta) ProtoMessage()
func (*Meta) XXX_DiscardUnknown ¶ added in v0.0.9
func (m *Meta) XXX_DiscardUnknown()
func (*Meta) XXX_Marshal ¶ added in v0.0.9
func (*Meta) XXX_Unmarshal ¶ added in v0.0.9
type Resource ¶
type Resource struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` AltIds []string `protobuf:"bytes,3,rep,name=alt_ids,json=altIds,proto3" json:"alt_ids,omitempty"` Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` // Arbitrary string-addressable labels Labels map[string]string `` /* 154-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Resource related to the Event.
func (*Resource) Descriptor ¶
func (*Resource) GetDisplayName ¶
func (*Resource) MarshalLogObject ¶ added in v0.0.9
func (m *Resource) MarshalLogObject(oe zapcore.ObjectEncoder) error
func (*Resource) ProtoMessage ¶
func (*Resource) ProtoMessage()
func (*Resource) XXX_DiscardUnknown ¶
func (m *Resource) XXX_DiscardUnknown()
func (*Resource) XXX_Marshal ¶
func (*Resource) XXX_Unmarshal ¶
type Target ¶
type Target struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Kind Target_Kind `protobuf:"varint,2,opt,name=kind,proto3,enum=indent.audit.v1.Target_Kind" json:"kind,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Target is the intended recipient of the contained Events.
func (*Target) Descriptor ¶
func (*Target) GetKind ¶
func (m *Target) GetKind() Target_Kind
func (*Target) ProtoMessage ¶
func (*Target) ProtoMessage()
func (*Target) XXX_DiscardUnknown ¶
func (m *Target) XXX_DiscardUnknown()
func (*Target) XXX_Marshal ¶
func (*Target) XXX_Unmarshal ¶
type Target_Kind ¶
type Target_Kind int32
Kind of Target the Event is being written to.
const ( Target_INPUT Target_Kind = 0 Target_OUTPUT Target_Kind = 1 )
func (Target_Kind) EnumDescriptor ¶
func (Target_Kind) EnumDescriptor() ([]byte, []int)
func (Target_Kind) String ¶
func (x Target_Kind) String() string
type UnimplementedAuditAPIServer ¶ added in v0.0.9
type UnimplementedAuditAPIServer struct { }
UnimplementedAuditAPIServer can be embedded to have forward compatible implementations.
func (*UnimplementedAuditAPIServer) Write ¶ added in v0.0.9
func (*UnimplementedAuditAPIServer) Write(ctx context.Context, req *WriteRequest) (*emptypb.Empty, error)
func (*UnimplementedAuditAPIServer) WriteBatch ¶ added in v0.0.9
func (*UnimplementedAuditAPIServer) WriteBatch(ctx context.Context, req *WriteBatchRequest) (*emptypb.Empty, error)
func (*UnimplementedAuditAPIServer) WriteEvent ¶ added in v0.0.9
func (*UnimplementedAuditAPIServer) WriteEvent(ctx context.Context, req *WriteEventRequest) (*emptypb.Empty, error)
type WriteBatchRequest ¶
type WriteBatchRequest struct { // Name of space containing provider. SpaceName string `protobuf:"bytes,1,opt,name=space_name,json=spaceName,proto3" json:"space_name,omitempty"` // Name of provider containing Input. ProviderName string `protobuf:"bytes,2,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"` // Name of Input the event is written to. InputName string `protobuf:"bytes,3,opt,name=input_name,json=inputName,proto3" json:"input_name,omitempty"` // Async returns immediately and doesn't wait for events to be written. Async bool `protobuf:"varint,4,opt,name=async,proto3" json:"async,omitempty"` // Events being written. Events []*Event `protobuf:"bytes,20,rep,name=events,proto3" json:"events,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WriteBatchRequest) Descriptor ¶
func (*WriteBatchRequest) Descriptor() ([]byte, []int)
func (*WriteBatchRequest) GetAsync ¶
func (m *WriteBatchRequest) GetAsync() bool
func (*WriteBatchRequest) GetEvents ¶
func (m *WriteBatchRequest) GetEvents() []*Event
func (*WriteBatchRequest) GetInputName ¶
func (m *WriteBatchRequest) GetInputName() string
func (*WriteBatchRequest) GetProviderName ¶
func (m *WriteBatchRequest) GetProviderName() string
func (*WriteBatchRequest) GetSpaceName ¶
func (m *WriteBatchRequest) GetSpaceName() string
func (*WriteBatchRequest) ProtoMessage ¶
func (*WriteBatchRequest) ProtoMessage()
func (*WriteBatchRequest) Reset ¶
func (m *WriteBatchRequest) Reset()
func (*WriteBatchRequest) String ¶
func (m *WriteBatchRequest) String() string
func (*WriteBatchRequest) XXX_DiscardUnknown ¶
func (m *WriteBatchRequest) XXX_DiscardUnknown()
func (*WriteBatchRequest) XXX_Marshal ¶
func (m *WriteBatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WriteBatchRequest) XXX_Merge ¶
func (m *WriteBatchRequest) XXX_Merge(src proto.Message)
func (*WriteBatchRequest) XXX_Size ¶
func (m *WriteBatchRequest) XXX_Size() int
func (*WriteBatchRequest) XXX_Unmarshal ¶
func (m *WriteBatchRequest) XXX_Unmarshal(b []byte) error
type WriteEventRequest ¶
type WriteEventRequest struct { // Name of space containing provider. SpaceName string `protobuf:"bytes,1,opt,name=space_name,json=spaceName,proto3" json:"space_name,omitempty"` // Name of provider containing Input. ProviderName string `protobuf:"bytes,2,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"` // Name of Input the event is written to. InputName string `protobuf:"bytes,3,opt,name=input_name,json=inputName,proto3" json:"input_name,omitempty"` // Event being written. Event *Event `protobuf:"bytes,4,opt,name=event,proto3" json:"event,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WriteEventRequest) Descriptor ¶
func (*WriteEventRequest) Descriptor() ([]byte, []int)
func (*WriteEventRequest) GetEvent ¶
func (m *WriteEventRequest) GetEvent() *Event
func (*WriteEventRequest) GetInputName ¶
func (m *WriteEventRequest) GetInputName() string
func (*WriteEventRequest) GetProviderName ¶
func (m *WriteEventRequest) GetProviderName() string
func (*WriteEventRequest) GetSpaceName ¶
func (m *WriteEventRequest) GetSpaceName() string
func (*WriteEventRequest) ProtoMessage ¶
func (*WriteEventRequest) ProtoMessage()
func (*WriteEventRequest) Reset ¶
func (m *WriteEventRequest) Reset()
func (*WriteEventRequest) String ¶
func (m *WriteEventRequest) String() string
func (*WriteEventRequest) XXX_DiscardUnknown ¶
func (m *WriteEventRequest) XXX_DiscardUnknown()
func (*WriteEventRequest) XXX_Marshal ¶
func (m *WriteEventRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WriteEventRequest) XXX_Merge ¶
func (m *WriteEventRequest) XXX_Merge(src proto.Message)
func (*WriteEventRequest) XXX_Size ¶
func (m *WriteEventRequest) XXX_Size() int
func (*WriteEventRequest) XXX_Unmarshal ¶
func (m *WriteEventRequest) XXX_Unmarshal(b []byte) error
type WriteRequest ¶
type WriteRequest struct { // Target being written to. Target *Target `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"` // Async returns immediately and doesn't wait for events to be written. Async bool `protobuf:"varint,5,opt,name=async,proto3" json:"async,omitempty"` // Events being written. Events []*Event `protobuf:"bytes,20,rep,name=events,proto3" json:"events,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WriteRequest) Descriptor ¶
func (*WriteRequest) Descriptor() ([]byte, []int)
func (*WriteRequest) GetAsync ¶
func (m *WriteRequest) GetAsync() bool
func (*WriteRequest) GetEvents ¶
func (m *WriteRequest) GetEvents() []*Event
func (*WriteRequest) GetTarget ¶
func (m *WriteRequest) GetTarget() *Target
func (*WriteRequest) ProtoMessage ¶
func (*WriteRequest) ProtoMessage()
func (*WriteRequest) Reset ¶
func (m *WriteRequest) Reset()
func (*WriteRequest) String ¶
func (m *WriteRequest) String() string
func (*WriteRequest) XXX_DiscardUnknown ¶
func (m *WriteRequest) XXX_DiscardUnknown()
func (*WriteRequest) XXX_Marshal ¶
func (m *WriteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WriteRequest) XXX_Merge ¶
func (m *WriteRequest) XXX_Merge(src proto.Message)
func (*WriteRequest) XXX_Size ¶
func (m *WriteRequest) XXX_Size() int
func (*WriteRequest) XXX_Unmarshal ¶
func (m *WriteRequest) XXX_Unmarshal(b []byte) error