123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package sarama
- import (
- "time"
- )
- // AlterClientQuotas Response (Version: 0) => throttle_time_ms [entries]
- // throttle_time_ms => INT32
- // entries => error_code error_message [entity]
- // error_code => INT16
- // error_message => NULLABLE_STRING
- // entity => entity_type entity_name
- // entity_type => STRING
- // entity_name => NULLABLE_STRING
- type AlterClientQuotasResponse struct {
- Version int16
- ThrottleTime time.Duration // The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota.
- Entries []AlterClientQuotasEntryResponse // The quota configuration entries altered.
- }
- type AlterClientQuotasEntryResponse struct {
- ErrorCode KError // The error code, or `0` if the quota alteration succeeded.
- ErrorMsg *string // The error message, or `null` if the quota alteration succeeded.
- Entity []QuotaEntityComponent // The quota entity altered.
- }
- func (a *AlterClientQuotasResponse) encode(pe packetEncoder) error {
- // ThrottleTime
- pe.putInt32(int32(a.ThrottleTime / time.Millisecond))
- // Entries
- if err := pe.putArrayLength(len(a.Entries)); err != nil {
- return err
- }
- for _, e := range a.Entries {
- if err := e.encode(pe); err != nil {
- return err
- }
- }
- return nil
- }
- func (a *AlterClientQuotasResponse) decode(pd packetDecoder, version int16) error {
- // ThrottleTime
- throttleTime, err := pd.getInt32()
- if err != nil {
- return err
- }
- a.ThrottleTime = time.Duration(throttleTime) * time.Millisecond
- // Entries
- entryCount, err := pd.getArrayLength()
- if err != nil {
- return err
- }
- if entryCount > 0 {
- a.Entries = make([]AlterClientQuotasEntryResponse, entryCount)
- for i := range a.Entries {
- e := AlterClientQuotasEntryResponse{}
- if err = e.decode(pd, version); err != nil {
- return err
- }
- a.Entries[i] = e
- }
- } else {
- a.Entries = []AlterClientQuotasEntryResponse{}
- }
- return nil
- }
- func (a *AlterClientQuotasEntryResponse) encode(pe packetEncoder) error {
- // ErrorCode
- pe.putInt16(int16(a.ErrorCode))
- // ErrorMsg
- if err := pe.putNullableString(a.ErrorMsg); err != nil {
- return err
- }
- // Entity
- if err := pe.putArrayLength(len(a.Entity)); err != nil {
- return err
- }
- for _, component := range a.Entity {
- if err := component.encode(pe); err != nil {
- return err
- }
- }
- return nil
- }
- func (a *AlterClientQuotasEntryResponse) decode(pd packetDecoder, version int16) error {
- // ErrorCode
- errCode, err := pd.getInt16()
- if err != nil {
- return err
- }
- a.ErrorCode = KError(errCode)
- // ErrorMsg
- errMsg, err := pd.getNullableString()
- if err != nil {
- return err
- }
- a.ErrorMsg = errMsg
- // Entity
- componentCount, err := pd.getArrayLength()
- if err != nil {
- return err
- }
- if componentCount > 0 {
- a.Entity = make([]QuotaEntityComponent, componentCount)
- for i := 0; i < componentCount; i++ {
- component := QuotaEntityComponent{}
- if err := component.decode(pd, version); err != nil {
- return err
- }
- a.Entity[i] = component
- }
- } else {
- a.Entity = []QuotaEntityComponent{}
- }
- return nil
- }
- func (a *AlterClientQuotasResponse) key() int16 {
- return 49
- }
- func (a *AlterClientQuotasResponse) version() int16 {
- return a.Version
- }
- func (a *AlterClientQuotasResponse) headerVersion() int16 {
- return 0
- }
- func (a *AlterClientQuotasResponse) isValidVersion() bool {
- return a.Version == 0
- }
- func (a *AlterClientQuotasResponse) requiredVersion() KafkaVersion {
- return V2_6_0_0
- }
- func (r *AlterClientQuotasResponse) throttleTime() time.Duration {
- return r.ThrottleTime
- }
|