func NewBilling(cfg *config.Config) (*bClient.Billing, error) {
	u, err := deriveURL(cfg, "billing")
	if err != nil {
		return nil, err
	}
	c := bClient.DefaultTransportConfig()
	c.WithHost(u.Host)
	c.WithBasePath(u.Path)
	c.WithSchemes([]string{u.Scheme})
	transport := httptransport.New(c.Host, c.BasePath, c.Schemes)
	authToken := retrieveToken(cfg)
	if authToken != "" {
		transport.DefaultAuthentication = NewBearerToken(authToken)
	}
	return bClient.New(transport, strfmt.Default), nil
}
NewBilling returns a swagger generated client for the Billing
service
package clients
import (
	"fmt"
	"net/http"
	"net/url"
	"os"
	"github.com/go-openapi/runtime"
	httptransport "github.com/go-openapi/runtime/client"
	"github.com/go-openapi/strfmt"
	"github.com/manifoldco/manifold-cli/config"
	aClient "github.com/manifoldco/manifold-cli/generated/activity/client"
	bClient "github.com/manifoldco/manifold-cli/generated/billing/client"
	cClient "github.com/manifoldco/manifold-cli/generated/catalog/client"
	conClient "github.com/manifoldco/manifold-cli/generated/connector/client"
	iClient "github.com/manifoldco/manifold-cli/generated/identity/client"
	mClient "github.com/manifoldco/manifold-cli/generated/marketplace/client"
	pClient "github.com/manifoldco/manifold-cli/generated/provisioning/client"
)
const defaultUserAgent = "manifold-cli"
const EnvManifoldToken string = "MANIFOLD_API_TOKEN"
func newRoundTripper(next http.RoundTripper) http.RoundTripper {
	version := config.Version
	if version != "" {
		version = "-" + version
	}
	return &roundTripper{
		next:      next,
		userAgent: defaultUserAgent + version,
	}
}
type roundTripper struct {
	next      http.RoundTripper
	userAgent string
}
func (rt *roundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
	req.Header.Set("User-Agent", rt.userAgent)
	return rt.next.RoundTrip(req)
}
func NewIdentity(cfg *config.Config) (*iClient.Identity, error) {
	u, err := deriveURL(cfg, "identity")
	if err != nil {
		return nil, err
	}
	c := iClient.DefaultTransportConfig()
	c.WithHost(u.Host)
	c.WithBasePath(u.Path)
	c.WithSchemes([]string{u.Scheme})
	transport := httptransport.New(c.Host, c.BasePath, c.Schemes)
	transport.Transport = newRoundTripper(transport.Transport)
	authToken := retrieveToken(cfg)
	if authToken != "" {
		transport.DefaultAuthentication = NewBearerToken(authToken)
	}
	return iClient.New(transport, strfmt.Default), nil
}
func NewMarketplace(cfg *config.Config) (*mClient.Marketplace, error) {
	u, err := deriveURL(cfg, "marketplace")
	if err != nil {
		return nil, err
	}
	c := mClient.DefaultTransportConfig()
	c.WithHost(u.Host)
	c.WithBasePath(u.Path)
	c.WithSchemes([]string{u.Scheme})
	transport := httptransport.New(c.Host, c.BasePath, c.Schemes)
	transport.Transport = newRoundTripper(transport.Transport)
	authToken := retrieveToken(cfg)
	if authToken != "" {
		transport.DefaultAuthentication = NewBearerToken(authToken)
	}
	return mClient.New(transport, strfmt.Default), nil
}