github.com/hack0072008/kafka-go@v1.0.1/protocol/txnoffsetcommit/txnoffsetcommit.go (about)

     1  package txnoffsetcommit
     2  
     3  import "github.com/hack0072008/kafka-go/protocol"
     4  
     5  func init() {
     6  	protocol.Register(&Request{}, &Response{})
     7  }
     8  
     9  type Request struct {
    10  	// We need at least one tagged field to indicate that this is a "flexible" message
    11  	// type.
    12  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    13  
    14  	TransactionalID string         `kafka:"min=v0,max=v2|min=v3,max=v3,compact"`
    15  	GroupID         string         `kafka:"min=v0,max=v2|min=v3,max=v3,compact"`
    16  	ProducerID      int64          `kafka:"min=v0,max=v3"`
    17  	ProducerEpoch   int16          `kafka:"min=v0,max=v3"`
    18  	GenerationID    int32          `kafka:"min=v3,max=v3"`
    19  	MemberID        string         `kafka:"min=v3,max=v3,compact"`
    20  	GroupInstanceID string         `kafka:"min=v3,max=v3,compact,nullable"`
    21  	Topics          []RequestTopic `kafka:"min=v0,max=v3"`
    22  }
    23  
    24  type RequestTopic struct {
    25  	// We need at least one tagged field to indicate that this is a "flexible" message
    26  	// type.
    27  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    28  
    29  	Name       string             `kafka:"min=v0,max=v2|min=v3,max=v3,compact"`
    30  	Partitions []RequestPartition `kafka:"min=v0,max=v3"`
    31  }
    32  
    33  type RequestPartition struct {
    34  	// We need at least one tagged field to indicate that this is a "flexible" message
    35  	// type.
    36  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    37  
    38  	Partition            int32  `kafka:"min=v0,max=v3"`
    39  	CommittedOffset      int64  `kafka:"min=v0,max=v3"`
    40  	CommittedLeaderEpoch int32  `kafka:"min=v2,max=v3"`
    41  	CommittedMetadata    string `kafka:"min=v0,max=v2|min=v3,max=v3,nullable,compact"`
    42  }
    43  
    44  func (r *Request) ApiKey() protocol.ApiKey { return protocol.TxnOffsetCommit }
    45  
    46  func (r *Request) Group() string { return r.GroupID }
    47  
    48  var _ protocol.GroupMessage = (*Request)(nil)
    49  
    50  type Response struct {
    51  	// We need at least one tagged field to indicate that this is a "flexible" message
    52  	// type.
    53  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    54  
    55  	ThrottleTimeMs int32           `kafka:"min=v0,max=v3"`
    56  	Topics         []ResponseTopic `kafka:"min=v0,max=v3"`
    57  }
    58  
    59  type ResponseTopic struct {
    60  	// We need at least one tagged field to indicate that this is a "flexible" message
    61  	// type.
    62  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    63  
    64  	Name       string              `kafka:"min=v0,max=v2|min=v3,max=v3,compact"`
    65  	Partitions []ResponsePartition `kafka:"min=v0,max=v3"`
    66  }
    67  
    68  type ResponsePartition struct {
    69  	// We need at least one tagged field to indicate that this is a "flexible" message
    70  	// type.
    71  	_ struct{} `kafka:"min=v3,max=v3,tag"`
    72  
    73  	Partition int32 `kafka:"min=v0,max=v3"`
    74  	ErrorCode int16 `kafka:"min=v0,max=v3"`
    75  }
    76  
    77  func (r *Response) ApiKey() protocol.ApiKey { return protocol.TxnOffsetCommit }