123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package kafka
- import (
- "fmt"
- "strings"
- )
- // https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/resource/ResourceType.java
- type ResourceType int8
- const (
- ResourceTypeUnknown ResourceType = 0
- ResourceTypeAny ResourceType = 1
- ResourceTypeTopic ResourceType = 2
- ResourceTypeGroup ResourceType = 3
- // See https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/config/ConfigResource.java#L36
- ResourceTypeBroker ResourceType = 4
- ResourceTypeCluster ResourceType = 4
- ResourceTypeTransactionalID ResourceType = 5
- ResourceTypeDelegationToken ResourceType = 6
- )
- func (rt ResourceType) String() string {
- mapping := map[ResourceType]string{
- ResourceTypeUnknown: "Unknown",
- ResourceTypeAny: "Any",
- ResourceTypeTopic: "Topic",
- ResourceTypeGroup: "Group",
- // Note that ResourceTypeBroker and ResourceTypeCluster have the same value.
- // A map cannot have duplicate values so we just use the same value for both.
- ResourceTypeCluster: "Cluster",
- ResourceTypeTransactionalID: "Transactionalid",
- ResourceTypeDelegationToken: "Delegationtoken",
- }
- s, ok := mapping[rt]
- if !ok {
- s = mapping[ResourceTypeUnknown]
- }
- return s
- }
- func (rt ResourceType) MarshalText() ([]byte, error) {
- return []byte(rt.String()), nil
- }
- func (rt *ResourceType) UnmarshalText(text []byte) error {
- normalized := strings.ToLower(string(text))
- mapping := map[string]ResourceType{
- "unknown": ResourceTypeUnknown,
- "any": ResourceTypeAny,
- "topic": ResourceTypeTopic,
- "group": ResourceTypeGroup,
- "broker": ResourceTypeBroker,
- "cluster": ResourceTypeCluster,
- "transactionalid": ResourceTypeTransactionalID,
- "delegationtoken": ResourceTypeDelegationToken,
- }
- parsed, ok := mapping[normalized]
- if !ok {
- *rt = ResourceTypeUnknown
- return fmt.Errorf("cannot parse %s as a ResourceType", normalized)
- }
- *rt = parsed
- return nil
- }
- // https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/resource/PatternType.java
- type PatternType int8
- const (
- // PatternTypeUnknown represents any PatternType which this client cannot
- // understand.
- PatternTypeUnknown PatternType = 0
- // PatternTypeAny matches any resource pattern type.
- PatternTypeAny PatternType = 1
- // PatternTypeMatch perform pattern matching.
- PatternTypeMatch PatternType = 2
- // PatternTypeLiteral represents a literal name.
- // A literal name defines the full name of a resource, e.g. topic with name
- // 'foo', or group with name 'bob'.
- PatternTypeLiteral PatternType = 3
- // PatternTypePrefixed represents a prefixed name.
- // A prefixed name defines a prefix for a resource, e.g. topics with names
- // that start with 'foo'.
- PatternTypePrefixed PatternType = 4
- )
- func (pt PatternType) String() string {
- mapping := map[PatternType]string{
- PatternTypeUnknown: "Unknown",
- PatternTypeAny: "Any",
- PatternTypeMatch: "Match",
- PatternTypeLiteral: "Literal",
- PatternTypePrefixed: "Prefixed",
- }
- s, ok := mapping[pt]
- if !ok {
- s = mapping[PatternTypeUnknown]
- }
- return s
- }
- func (pt PatternType) MarshalText() ([]byte, error) {
- return []byte(pt.String()), nil
- }
- func (pt *PatternType) UnmarshalText(text []byte) error {
- normalized := strings.ToLower(string(text))
- mapping := map[string]PatternType{
- "unknown": PatternTypeUnknown,
- "any": PatternTypeAny,
- "match": PatternTypeMatch,
- "literal": PatternTypeLiteral,
- "prefixed": PatternTypePrefixed,
- }
- parsed, ok := mapping[normalized]
- if !ok {
- *pt = PatternTypeUnknown
- return fmt.Errorf("cannot parse %s as a PatternType", normalized)
- }
- *pt = parsed
- return nil
- }
|