func WithAthenzURL(url string) Option {
	return func(authz *authority) error {
		u := urlutil.TrimHTTPScheme(url)
		if urlutil.HasScheme(u) {
			return urlutil.ErrUnsupportedScheme
		}
		authz.athenzURL = u
		return nil
	}
}
WithAthenzURL returns an AthenzURL functional option
package authorizerd
import (
	"net/http"
	"time"
	urlutil "github.com/yahoojapan/athenz-authorizer/v5/internal/url"
)
const (
	defaultHTTPClientTimeout = 30
)
var (
	defaultOptions = []Option{
		WithAthenzURL("athenz.io/zts/v1"),
		WithHTTPClient(nil),
		WithCacheExp(time.Minute),
		WithEnablePubkeyd(),
		WithEnablePolicyd(),
		WithEnableJwkd(),
		WithAccessTokenParam(NewAccessTokenParam(true, true, "1h", "1h", false, nil)),
		WithEnableRoleToken(),
		WithRoleAuthHeader("Athenz-Role-Auth"),
		WithEnableRoleCert(),
		WithRoleCertURIPrefix("athenz://role/"),
	}
)
type AccessTokenParam struct {
	enable               bool
	verifyCertThumbprint bool
	certBackdateDur      string
	certOffsetDur        string
	verifyClientID       bool
	authorizedClientIDs  map[string][]string
}
type Option func(*authority) error