func decodeEndpoint()

in dax/internal/client/response.go [89:133]


func decodeEndpoint(reader *cbor.Reader) (serviceEndpoint, error) {
	se := serviceEndpoint{}
	err := consumeMap(reader, func(key int, r *cbor.Reader) error {
		var err error
		switch key {
		case keyNodeId:
			if se.nodeId, err = r.ReadInt64(); err != nil {
				return err
			}
		case keyHostname:
			if se.hostname, err = r.ReadString(); err != nil {
				return err
			}
		case keyAddress:
			if se.address, err = r.ReadBytes(); err != nil {
				return err
			}
		case keyPort:
			if se.port, err = r.ReadInt(); err != nil {
				return err
			}
		case keyRole:
			if role, err := r.ReadInt(); err != nil {
				return err
			} else {
				if role != roleLeader && role != roleReplica {
					return &smithy.SerializationError{Err: fmt.Errorf("unknown role %d", role)}
				}
				se.role = role
			}
		case keyAvailablityZone:
			if se.availabilityZone, err = r.ReadString(); err != nil {
				return err
			}
		case keyLeaderSessionId:
			if se.leaderSessionId, err = r.ReadInt64(); err != nil {
				return err
			}
		default:
			// inorder to ensure backward compatibility on future field additions, new/unknown fields are ignored
		}
		return nil
	})
	return se, err
}