func (s *SecretURL) Copy() SecretURL {
	v := *s
	return v
}
Copy makes a deep-copy of the type
package config
import (
	"encoding/json"
	"fmt"
	"net/url"
	"regexp"
	"sort"
	"strings"
)
const secretToken = "<secret>"
type Secret string
func (s Secret) MarshalYAML() (interface{}, error) {
	if s != "" {
		return secretToken, nil
	}
	return nil, nil
}
func (s *Secret) UnmarshalYAML(unmarshal func(interface{}) error) error {
	type plain Secret
	return unmarshal((*plain)(s))
}
func (s Secret) MarshalJSON() ([]byte, error) {
	return json.Marshal(secretToken)
}
type URL struct {
	url.URL
}
func ParseURL(s string) (*URL, error) {
	u, err := url.Parse(s)
	if err != nil {
		return nil, err
	}
	if u.Scheme != "http" && u.Scheme != "https" {
		return nil, fmt.Errorf("unsupported scheme %q for URL", u.Scheme)
	}
	if u.Host == "" {
		return nil, fmt.Errorf("missing host for URL")
	}
	return &URL{*u}, nil
}
func (u *URL) MarshalYAML() (interface{}, error) {
	return u.URL.String(), nil
}
func (u *URL) UnmarshalYAML(unmarshal func(interface{}) error) error {
	var s string
	if err := unmarshal(&s); err != nil {
		return err
	}
	urlp, err := ParseURL(s)
	if err != nil {
		return err
	}
	u.URL = urlp.URL
	return nil
}
func (u *URL) MarshalJSON() ([]byte, error) {
	return json.Marshal(u.URL.String())
}
type SecretURL URL