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  }