func WithEndpoint(endpoint *url.URL) ProviderModifierFn {
	return func(u *DMV) {
		u.endpoint = endpoint
	}
}
WithEndpoint sets endpoint for the license provider.
package license
import (
	"context"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"github.com/pkg/errors"
	uphttp "github.com/upbound/up/internal/http"
)
const (
	path = "/v1/accessKey/%s/%s:%s"
	errGetAccessKey = "failed to acquire key"
)
type Response struct {
	AccessKey string `json:"key"`
	Signature string `json:"signature"`
}
type Provider interface {
	GetAccessKey(context.Context, string, string) (*Response, error)
}
func NewProvider(modifiers ...ProviderModifierFn) *DMV {
	p := &DMV{
		client: &http.Client{},
	}
	for _, m := range modifiers {
		m(p)
	}
	return p
}
type DMV struct {
	client   uphttp.Client
	endpoint *url.URL
	orgID     string
	productID string
}
type ProviderModifierFn func(*DMV)