github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/api/agent/caasadmission/client.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasadmission 5 6 import ( 7 "github.com/juju/errors" 8 9 "github.com/juju/juju/api/base" 10 "github.com/juju/juju/api/common" 11 ) 12 13 // Client provides access to controller config 14 type Client struct { 15 facade base.FacadeCaller 16 *common.ControllerConfigAPI 17 } 18 19 func NewClient(caller base.APICaller) (*Client, error) { 20 _, isModel := caller.ModelTag() 21 if !isModel { 22 return nil, errors.New("expected model specific API connection") 23 } 24 facadeCaller := base.NewFacadeCaller(caller, "CAASAdmission") 25 return &Client{ 26 facade: facadeCaller, 27 ControllerConfigAPI: common.NewControllerConfig(facadeCaller), 28 }, nil 29 }