// Copyright © 2023 Roberto Hidalgo // SPDX-License-Identifier: Apache-2.0 package types import ( "encoding/json" "errors" ) var ErrInvalid = errors.New("invalid source.kind provided") type Kind string const ( HTTP Kind = "http" Consul Kind = "consul" ) func (k *Kind) UnmarshalJSON(raw []byte) error { var data string if err := json.Unmarshal(raw, &data); err != nil { return err } nk := Kind(data) switch nk { case HTTP, Consul: *k = nk return nil } return ErrInvalid }