func (c *cisService) Zones() Zones {
	return newZoneAPI(c.Client)
}
Zones implement albs API
package cisv1
import (
	gohttp "net/http"
	"strconv"
	bluemix "github.com/IBM-Cloud/bluemix-go"
	"github.com/IBM-Cloud/bluemix-go/authentication"
	"github.com/IBM-Cloud/bluemix-go/client"
	"github.com/IBM-Cloud/bluemix-go/http"
	"github.com/IBM-Cloud/bluemix-go/rest"
	"github.com/IBM-Cloud/bluemix-go/session"
)
const ErrCodeAPICreation = "APICreationError"
type CisServiceAPI interface {
	Zones() Zones
	Monitors() Monitors
	Pools() Pools
	Glbs() Glbs
	Settings() Settings
	Ips() Ips
	Dns() Dns
	Firewall() Firewall
	RateLimit() RateLimit
}
type cisService struct {
	*client.Client
}
func New(sess *session.Session) (CisServiceAPI, error) {
	config := sess.Config.Copy()
	err := config.ValidateConfigForService(bluemix.CisService)
	if err != nil {
		return nil, err
	}
	if config.HTTPClient == nil {
		config.HTTPClient = http.NewHTTPClient(config)
	}
	tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{
		DefaultHeader: gohttp.Header{
			"User-Agent": []string{http.UserAgent()},
		},
		HTTPClient: config.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	if config.IAMAccessToken == "" {
		err := authentication.PopulateTokens(tokenRefreher, config)
		if err != nil {
			return nil, err
		}
	}
	if config.Endpoint == nil {
		ep, err := config.EndpointLocator.CisEndpoint()
		if err != nil {
			return nil, err
		}
		config.Endpoint = &ep
	}
	return &cisService{
		Client: client.New(config, bluemix.CisService, tokenRefreher),
	}, nil
}